# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
537742 | Mahfel | Crossing (JOI21_crossing) | C++17 | 359 ms | 25996 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define lt(x) 2*x+1
#define rt(x) 2*x+2
const ll MXN = 2e5 + 20 , PR1 = 19 , PR2 = 31 , MOD1 = 998244353 , MOD2 = 1e9 + 9;
ll po1[MXN] , po2[MXN] , pref1[MXN] , pref2[MXN];
set<pair<ll,ll>> H;
pair<ll,ll> Hash(vector<int> v) {
ll h1 = 0 , h2 = 0 , p1 = 1 , p2 = 1;
for(auto x : v) {
x++;
h1 += x*p1 % MOD1; h1 %= MOD1;
h2 += x*p2 % MOD2; h2 %= MOD2;
p1 *= PR1; p1 %= MOD1;
p2 *= PR2; p2 %= MOD2;
}
return {h1 , h2};
}
vector<int> str[3];
int n,q;
void prep(int c1 , int c2 , int c3) {
vector<int> res(n);
for(int i = 0 ; i < n ; i++) {
res[i] = ((c1*str[0][i]) + (c2*str[1][i]) + (c3*str[2][i])) % 3;
}
H.insert(Hash(res));
}
inline ll P(ll a , ll b , ll MOD) {
ll res = 1;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |