제출 #1125712

#제출 시각아이디문제언어결과실행 시간메모리
1125712EfeBabagilFancy Fence (CEOI20_fancyfence)C++20
15 / 100
61 ms3400 KiB
#include <bits/stdc++.h> #include <stdio.h> using namespace std; #define int long long int mod=1e9+7; int32_t main() { int n; cin>>n; vector<pair<int,int>> fences(n); vector<int> pref(n),suf(n); for(int i=0;i<n;i++) { cin>>fences[i].first; } for(int i=0;i<n;i++) { cin>>fences[i].second; } pref[0]=fences[0].second; suf[n-1]=fences[n-1].second; for(int i=n-2;i>=0;i--) { suf[i]=(suf[i+1]+fences[i].second)%mod; } /* for(int i=0;i<n;i++) cout<<suf[i]<<" "; cout<<endl;*/ int ans=0; int w,h,row,col; for(int i=0;i<n;i++) { if(i==0) { w=suf[i]; h=fences[i].first; row=(((h+1)*h)/2)%mod; col=(((w+1)*w)/2)%mod; ans=(ans+row*col)%mod; } else if(fences[i].first==fences[i-1].first) { continue; } else { h=fences[i].first; w=suf[i]; row=(((h+1)*h)/2)%mod; h=fences[i-1].first; row=(row-((h+1)*h)/2)%mod; col=(((w+1)*w)/2)%mod; //cout<<row<<" "<<col<<endl; ans=(ans+row*col)%mod; } } cout<<ans; return 0; }
#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...