結果
問題 | No.2119 一般化百五減算 |
ユーザー | 沙耶花 |
提出日時 | 2022-11-04 21:37:34 |
言語 | C++17(gcc12) (gcc 12.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 98 ms / 2,000 ms |
コード長 | 870 bytes |
コンパイル時間 | 3,689 ms |
コンパイル使用メモリ | 270,056 KB |
実行使用メモリ | 8,140 KB |
最終ジャッジ日時 | 2024-07-18 19:20:44 |
合計ジャッジ時間 | 4,786 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 25 |
ソースコード
#include <stdio.h> #include <atcoder/all> #include <bits/stdc++.h> using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001 long long N,M; int main(){ cin>>N>>M; vector<long long> r,m; map<long long,long long> mp; rep(i,M){ long long b,c; cin>>b>>c; c += b * 1000000; c %= b; if(mp.count(b)){ if(mp[b]!=c){ cout<<"NaN"<<endl; return 0; } } mp[b] = c; } vector<pair<long long,long long>> rs; for(auto a:mp){ rs.emplace_back(a.first,a.second); } reverse(rs.begin(),rs.end()); for(long long i=0;i<=N;i++){ bool f = true; rep(j,rs.size()){ if(i%rs[j].first!=rs[j].second){ f = false; break; } } if(f){ cout<<i<<endl; return 0; } } cout<<"NaN"<<endl; return 0; }