Submission #746038

#TimeUsernameProblemLanguageResultExecution timeMemory
746038vjudge1Fancy Fence (CEOI20_fancyfence)C++17
28 / 100
98 ms3664 KiB
#include <bits/stdc++.h> using namespace std; const long long MOD = 1e9+7; int main(){ //idk long long n; cin >> n; long long x; long long ans = 0; bool b = true; vector<long long> w, h, comp; long long wsum = 0; for(long long i = 0; i < n; i++){ cin >> x; h.push_back(x); if (x != 1 && x != 2) b = false; } for(long long i = 0; i < n; i++){ cin >> x; wsum += x; wsum = wsum % MOD; w.push_back(x); } if(b){ for(long long i = 0; i < n; i++){ if(h[i] == 2){ if(i == 0) comp.push_back(w[i]); else if(h[i-1] == 2) comp.back() += w[i]; else comp.push_back(w[i]); } } for(long long k : comp) { k = k % MOD; ans += k*(k+1); ans = ans % MOD; } ans += wsum*(wsum+1)/2; ans = ans % MOD; cout << ans;} else{ ans = wsum * (wsum+1); ans = ans%1000000007; ans *= h[0]; ans = ans%1000000007; ans *= (h[0]+1); ans = ans%1000000007; while(ans % 4 != 0){ ans += 1000000007; } ans /= 4; cout << ans; } }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...