Submission #225977

#TimeUsernameProblemLanguageResultExecution timeMemory
225977FashoLasers (NOI19_lasers)C++14
24 / 100
137 ms14016 KiB
#include <bits/stdc++.h> #define N 1000005 #define ll long long int #define MP make_pair #define pb push_back #define ppb pop_back #define sp " " #define endl "\n" #define fi first #define se second #define ii pair<int,int> #define lli pair<ll,ll> #define fast cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(false) #define fast2 freopen ("badhair.gir","r",stdin);freopen ("badhair.cik","w",stdout); #define mod 1000000007 #define fs(x,y) for(ll i=1;i<=y;i++) cin>>x[i] #define fo(i,x,y) for(ll i=x;i<=y;i++) #define INF 1000000000005 #define ull unsigned long long int using namespace std; ll n,m,ar[N],sum,t,l,suf[N]; vector<lli> v; int main() { fast; // cout<<endl; cin>>l>>t; while(t--) { cin>>n; ll top=0; fs(ar,n); int ind=1; fo(i,1,n+1) suf[i]=0; for(int i=n;i>=1;i--) suf[i]=suf[i+1]+ar[i]; fo(i,1,n) { ind=top; ll x=suf[i+1]; x+=ind; x=l-x; x=2*ar[i]-x; top+=ar[i]; if(x<=0) continue; ind++; ll y=ar[i]-x; // cout<<i<<sp<<ind<<sp<<x<<sp<<y<<endl; v.pb({ind+y,ind+y+x-1}); } } sort(v.begin(),v.end()); ll mk=0; for(int i=0;i<v.size();i++) { ll a=v[i].fi; ll b=v[i].se; if(b<mk) continue; mk=max(mk+1,a); sum+=b-mk+1; mk=max(mk,b); } cout<<sum; }

Compilation message (stderr)

lasers.cpp: In function 'int main()':
lasers.cpp:61:15: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0;i<v.size();i++)
              ~^~~~~~~~~
#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...