結果
| 問題 |
No.546 オンリー・ワン
|
| コンテスト | |
| ユーザー |
y_taira_c
|
| 提出日時 | 2017-07-15 00:20:08 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,094 bytes |
| コンパイル時間 | 1,210 ms |
| コンパイル使用メモリ | 106,696 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-10-08 00:22:37 |
| 合計ジャッジ時間 | 2,495 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 WA * 2 |
| other | AC * 2 WA * 4 RE * 1 |
ソースコード
#include <algorithm>
#include <iostream>
#include <set>
#include <string>
#include <sstream>
#include <vector>
#include <cmath>
#include <cstdio>
#include <chrono>
#include <unordered_map>
using namespace std;
typedef long long int ll;
#define REP(i,n) for(int i=0; i<(n); ++i )
#define REPR(i,n) for(int i=(n); i>=0; --i)
#define FOR(i,a,n) for(int i=(a); i<(n); ++i )
#define FORR(i,a,n) for(int i=(n); i>=(a); --i)
#define DOUT(x) cerr << #x << " = " << (x) << "\n";
#define COUT(x) cout << (x) << "\n";
signed main()
{
ll n, l, h;
cin >> n >> l >> h;
unordered_map<ll, ll> a;
unordered_map<ll, ll> b;
set<ll> c;
REP(i, n)
{
cin >> a[1 << i];
c.insert(a[1 << i]);
}
int cnt = 0;
FOR(i, 1, 1 << n)
{
int x = 1;
REP(j, n)
{
if (a.count(i & (1 << j)) == 0)continue;
x *= a[i &(1 << j)];
}
b[x] = h / x - (l-1)/x;
}
for (auto i = b.begin(); i != b.end(); ++i)
{
if (c.count(i->first))
{
cnt += i->second;
}
else
{
int x = 0;
REP(k, n)
{
if (i->first % a[1 << k] == 0)x++;
}
cnt -= i->second*x;
}
}
COUT(cnt);
}
y_taira_c