Submission #1170856

#TimeUsernameProblemLanguageResultExecution timeMemory
1170856KasymKLand of the Rainbow Gold (APIO17_rainbow)C++20
12 / 100
40 ms4368 KiB
#include "bits/stdc++.h" #include "rainbow.h" using namespace std; #define ff first #define ss second #define all(v) v.begin(), v.end() #define ll long long #define pb push_back #define pii pair<int, int> #define pli pair<ll, int> #define pll pair<ll, ll> #define tr(i, c) for(auto i = c.begin(); i != c.end(); ++i) #define wr puts("----------------") template<class T>bool umin(T& a,T b){if(a>b){a=b;return 1;}return 0;} template<class T>bool umax(T& a,T b){if(a<b){a=b;return 1;}return 0;} const int N = 2e5+5; int v[3][N], n, m, par[3][N]; void init(int r, int c, int sr, int sc, int M, char *s){ v[sr][sc]=1; n=r, m=c; for(int i = 0; i < M; ++i){ if(s[i] == 'N') sr--; if(s[i] == 'E') sc++; if(s[i] == 'W') sc--; if(s[i] == 'S') sr++; v[sr][sc]=1; } v[1][0]=v[2][0]=1; for(int i = 1; i <= m; ++i) par[1][i]=par[1][i-1]+(v[1][i-1] and !v[1][i]), par[2][i]=par[2][i-1]+(v[2][i-1] and !v[2][i]), par[3][i] = par[3][i-1] + (v[1][i-1] and v[2][i-1] and (!v[1][i] or !v[2][i])); } int colour(int ar, int ac, int br, int bc){ if(ar!=br) return (par[3][bc]-par[3][ac-1]+(v[2][ac-1]+v[1][ac-1]!=2 and v[2][ac]+v[1][ac]!=2)); return (par[ar][bc]-par[ar][ac-1]+(!v[ar][ac] and !v[ar][ac-1])); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...