結果
| 問題 |
No.237 作図可能性
|
| コンテスト | |
| ユーザー |
よっか
|
| 提出日時 | 2015-07-05 23:30:57 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 1,008 bytes |
| コンパイル時間 | 834 ms |
| コンパイル使用メモリ | 89,156 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-07-07 23:56:21 |
| 合計ジャッジ時間 | 1,433 ms |
|
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 28 |
ソースコード
#include <iostream>
#include <vector>
#include <deque>
#include <stack>
#include <memory>
#include <functional>
#include <algorithm>
#include <map>
#include <list>
#include <complex>
#include <string>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <numeric>
#include <array>
using namespace std;
typedef std::pair<int, int> pii;
typedef long long int ll;
#define pb push_back
const long long int MOD = 1e9+7;
ll f[5] = {3, 5, 17, 257, 65537};
int main(){
int A;
cin >> A;
std::vector<ll> v;
v.pb(1);
for(int i = 1; i < 1 << 5; i++) {
ll ret = 1;
for(int j = 0; j < 5; j++) {
if (i >> j & 1) {
ret *= f[j];
}
}
v.pb(ret);
}
int a = 0;
int r = 0;
int count_ = 0;
while(1){
ll b = pow(2, a);
if(b*v[0] > A) break;
for(const auto& element : v) {
r = b * element;
if(r <= A){
if(r != 1 && r != 2) count_++;
}else{
break;
}
}
a++;
}
std::cout << count_ << std::endl;
return 0;
}
よっか