結果
問題 |
No.316 もっと刺激的なFizzBuzzをください
|
ユーザー |
|
提出日時 | 2016-09-08 09:12:13 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,123 bytes |
コンパイル時間 | 641 ms |
コンパイル使用メモリ | 65,548 KB |
実行使用メモリ | 275,748 KB |
最終ジャッジ日時 | 2024-11-15 22:15:44 |
合計ジャッジ時間 | 5,697 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 9 WA * 22 TLE * 2 |
ソースコード
#include <iostream> #include <set> using namespace std; int main(){ int n,a,b,c; cin>>n; cin>>a>>b>>c; int d=0; if(c%b==0){ c=1e9+1; d+=1; } if(b%a==0){ b=1e9+1; d+=1; } int x=n/a+n/b+n/c; set<int> s; int ab=1e9+1; if(b!=1e9+1){ if(b%a!=0){ ab=a*b; } else { ab=b; } } int ac=1e9+1; if(c!=1e9+1){ if(c%a!=0){ ac=a*c; } else { ac=c; } } int bc=1e9+1; if(b!=1e9+1 && c!=1e9+1){ if(c%b!=0){ bc=b*c; } else { bc=c; } } int abc=1e9+1; if(a!=1e9+1 && b!=1e9+1 && c!=1e9+1){ if(b%a!=0 && c%b!=0){ abc=a*b*c; } else if(b%a!=0 && c%b==0){ abc=a*c; } else if(b%a==0 && c%b!=0){ abc=b*c; } else { abc=c; } } int nab=n/ab; int nac=n/ac; int nbc=n/bc; int nabc=n/abc; for(int i=1; i<=nab; ++i){ int y=ab*i; s.insert(y); } for(int i=1; i<=nac; ++i){ int y=ac*i; s.insert(y); } for(int i=1; i<=nbc; ++i){ int y=bc*i; s.insert(y); } for(int i=1; i<=nabc; ++i){ int y=abc*i; s.insert(y); } int z=x-s.size(); if(d<1) z-=3; cout<<z<<endl; return 0; }