Submission #1144358

#TimeUsernameProblemLanguageResultExecution timeMemory
1144358asdfghjk비밀 (JOI14_secret)C++20
0 / 100
20089 ms4956 KiB
#include "secret.h" #include <bits/stdc++.h> #define pb push_back #define all(x) x.begin(), x.end() #define F first #define S second #define con continue using namespace std; typedef long long ll; typedef double db; typedef long double ld; //const ll N = 3e5 + 5; const ll MOD = 1e9 + 7; const ll maxn = 6e5 + 5; const ll inf = 1e9+1; const ll INF = 1e18; const ll K = 31; /*vector <ll> z_function(string s){ // ll n = s.size(); // ll l = 0,r = 0; // vector <ll> z(n); // for(ll i = 1;i < n;i++){ // if(i <= r){ // z[i] = (r - i + 1,z[i - l]); // } // while(i + z[i] < n && s[z[i]] == s[z[i] + i]){ // z[i]++; // } // if(i + z[i] - 1 > r){ // r = i + z[i]-1; // l = i; // } // } }*/ /*vector <ll> prefix_function(string s){ ll n = s.size(); vector <ll> pi(n,0); for(ll i = 1;i < n;i++){ ll j = pi[i - 1]; while(j > 0 && s[i] != s[j]){ j = pi[j - 1]; } if(s[i] == s[j])++j; pi[i] = j; } return pi; }*/ int b[1005],N; int suf[1005][1005]; int pre[1005][1005]; void Init(int n,int a[]){ for(int i = 1;i <= n;i++){ b[i] = a[i - 1]; } N= n; queue <pair<int,int> > q; q.push({1,n}); while(q.size()){ pair<int,int> z = q.front(); int l = z.F; int r = z.S; int mid = (l + r) / 2; suf[mid][mid] = b[mid]; for(int i = mid - 1;i >= l;i--){ suf[mid][i] = Secret(suf[mid][i+1],b[i]); } pre[mid+1][mid+1] = b[mid+1]; for(int i = mid + 2;i <= r;i++){ pre[mid+1][i] = Secret(pre[mid+1][i-1],b[i]); } if(l < r){ if(l != mid)q.push({l,mid}); if(r != mid+1)q.push({mid+1,r}); } } } int Query(int l,int r){ l++; r++; if(l == r){ return b[r]; } int L = 1,R = N; while(1 == 1){ int mid = (L + R) / 2; if(r <= mid){ R = mid; con; } if(l > mid){ L = mid + 1; con; } break; } int mid = (L + R) / 2; int ans = Secret(suf[mid][l],pre[mid+1][r]); return ans; } //main(){ // ios_base::sync_with_stdio(0); // cin.tie(0); // ll abd = 1; //// cin >> abd; // for(ll i = 1;i <= abd;i++){ // solve(); // } //}
#Verdict Execution timeMemoryGrader output
Fetching results...