結果
問題 | No.97 最大の値を求めるくえり |
ユーザー |
|
提出日時 | 2021-04-06 12:04:37 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 1,103 ms / 5,000 ms |
コード長 | 2,086 bytes |
コンパイル時間 | 2,137 ms |
コンパイル使用メモリ | 195,652 KB |
最終ジャッジ日時 | 2025-01-20 12:24:39 |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 19 |
ソースコード
#include<bits/stdc++.h>using namespace std;#define rep(i,n) for(ll i=0;i<n;i++)#define repl(i,l,r) for(ll i=(l);i<(r);i++)#define per(i,n) for(ll i=(n)-1;i>=0;i--)#define perl(i,r,l) for(ll i=r-1;i>=l;i--)#define fi first#define se second#define pb push_back#define ins insert#define pqueue(x) priority_queue<x,vector<x>,greater<x>>#define all(x) (x).begin(),(x).end()#define CST(x) cout<<fixed<<setprecision(x)#define rev(x) reverse(x);using ll=long long;using vl=vector<ll>;using vvl=vector<vector<ll>>;using pl=pair<ll,ll>;using vpl=vector<pl>;using vvpl=vector<vpl>;const int MOD=1000000007;const int MOD9=998244353;const int inf=1e9+10;const ll INF=1e18;const ll dy[8]={1,0,-1,0,1,1,-1,-1};const ll dx[8]={0,1,0,-1,1,-1,1,-1};template <typename T> inline bool chmax(T &a, T b) {return ((a < b) ? (a = b, true) : (false));}template <typename T> inline bool chmin(T &a, T b) {return ((a > b) ? (a = b, true) : (false));}unsigned xor128_x = 123456789, xor128_y = 362436069, xor128_z = 521288629, xor128_w = 88675123;unsigned xor128() {unsigned t = xor128_x ^ (xor128_x << 11);xor128_x = xor128_y; xor128_y = xor128_z; xor128_z = xor128_w;return xor128_w = xor128_w ^ (xor128_w >> 19) ^ (t ^ (t >> 8));}void generateA(int N, int A[]) {for(int i = 0; i < N; ++ i)A[i] = xor128() % 100003;}ll modpow(ll a,ll n, ll mod) {ll res = 1;while (n > 0) {if (n & 1) res = res * a % mod;a = a * a % mod;n >>= 1;}return res;}int main(){ll n,q;cin >> n >>q;ll mod=100003;vector<bool> a(mod);int A[n];generateA(n,A);if(n*q<=1000000000){while(q--){ll x;cin >> x;ll ans=0;rep(i,n)chmax(ans,x*A[i]%mod);cout << ans <<endl;}}else{vector<bool> a(mod);rep(i,n)a[A[i]]=true;while(q--){ll x;cin >> x;if(x==0){cout << 0 <<endl;continue;}ll invx=modpow(x,mod-2,mod);per(i,mod){ll p=i*invx%mod;if(a[p]){cout << i <<endl;break;}}}}}