結果
問題 | No.152 貯金箱の消失 |
ユーザー |
![]() |
提出日時 | 2015-09-04 02:25:08 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1,017 ms / 5,000 ms |
コード長 | 940 bytes |
コンパイル時間 | 532 ms |
コンパイル使用メモリ | 72,480 KB |
実行使用メモリ | 332,424 KB |
最終ジャッジ日時 | 2024-07-18 23:40:18 |
合計ジャッジ時間 | 14,099 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 12 |
ソースコード
#include <iostream>#include <vector>#include <string>#include <cstring>#include <algorithm>#include <sstream>#include <map>#include <set>#define REP(i,k,n) for(int i=k;i<n;i++)#define rep(i,n) for(int i=0;i<n;i++)#define INF 1<<30#define pb push_back#define mp make_pairusing namespace std;typedef long long ll;typedef pair<int,int> P;int main() {int l;cin >> l;l /= 4;vector< vector<int> > v;REP(i,1,5005) {REP(j,i+1,5005) {if(i == j) continue;if((j-i)%2 == 0) continue;if(__gcd(i,j) != 1) continue;vector<int> t(3);t[0] = j*j - i*i;t[1] = 2*i*j;t[2] = j*j + i*i;v.push_back(t);}}int cnt = 0;rep(i,v.size()) {int sum = 0;rep(j,v[i].size()) sum += v[i][j];if(sum <= l) cnt++;}cout << cnt << endl;return 0;}