Gửi bài giải
Điểm:
0,25 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Input:
CAU5.INP
Output:
CAU5.OUT
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch
Hiền có ~N~ que tính, mỗi que có độ dài là một số nguyên dương và đôi một khác nhau. Hiền muốn tạo ra các tam giác bằng cách ghép ba que tính với nhau, độ dài mỗi cạnh của tam giác đúng bằng độ dài của một que tính.
Yêu cầu: Giúp Hiền tính xem có thể tạo được bao nhiêu tam giác nhọn, tam giác vuông và tam giác tù khác nhau từ các que tính này. Hai tam giác được gọi là khác nhau nếu có ít nhất một que tính khác nhau.
Input
Đọc từ tệp CAU5.INP gồm:
Dòng đầu tiên là số lượng que tính ~N~ (~3 \le N \le 5000~).
Dòng thứ hai gồm ~N~ số nguyên dương không lớn hơn ~10^4~ là chiều dài của ~N~ que tính.
Output
Ghi ra tệp CAU5.OUT một dòng duy nhất gồm ~3~ số nguyên lần lượt là số lượng tam giác nhọn, tam giác vuông và tam giác tù tạo được.
Scoring
Subtask | Điểm | Giới hạn |
---|---|---|
1 | ~25\%~ | ~3 \le N \le 300~ |
2 | ~75\%~ | Không có ràng buộc gì thêm |
Sample Input 1
6
2 12 9 10 3 15
Sample Output 1
2 1 4
Bình luận
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.
CODE TRÂU=))
include <iostream>
include <bits/stdc++.h>
define int long long
using namespace std; int a[10000001],b[1000001]; bool nh(int a,int b,int c) { return (aa+bb>cc && aa+cc>bb && cc+bb>aa); } bool vg(int a,int b,int c) { return (aa+bb==cc || aa+cc==bb || cc+bb==aa); } bool tu(int a,int b ,int c) { return (aa + bb < cc || aa + cc < bb || bb + cc < a*a); }
signed main() { freopen("CAU5.INP","r",stdin); freopen("CAU5.OUT","w",stdout); int n; cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; } int nhon=0,vuong=0,tuu=0; for(int i=1;i<=n;i++) { for(int j=i+1;j<=n;j++) { for(int k=j+1;k<=n;k++) { int x=a[i]; int y=a[j]; int z=a[k]; if(x + y > z && x + z > y && y + z > x) { if(nh(x,y,z)) { nhon++; }else if(vg(x,y,z)) { vuong++; }else if(tu(x,y,z)) { tuu++; } } } } } cout<<nhon<<" "<<vuong<<" "<<tuu; return 0; }