Submission #1040962

#TimeUsernameProblemLanguageResultExecution timeMemory
10409627againLasers (NOI19_lasers)C++17
100 / 100
178 ms13772 KiB
#include <bits/stdc++.h> #define int long long #define double long double #define all(x) x.begin(),x.end() #define rall(x) x.rbegin(),x.rend() #define FAST ios::sync_with_stdio(0);cout.tie(0);cin.tie(0) //#define endl "\n" #define f first #define s second #define pb push_back #define in insert //#define ind(v,t) distance(v.begin(),t) using namespace std ; int MOD = 1e18 ; const int N = 500005 ; //int fib(int n){double phi=(1+sqrt(5))/2;return round((pow(phi,n)-pow(1-phi,n))/sqrt(5));} //void setIO(string s){freopen((s+".in").c_str(),"r",stdin);freopen((s+".out").c_str(),"w",stdout);} int fstpow(int a, int b){if(b==0)return 1;int ans=fstpow(a,b/2)%MOD;ans=ans%MOD*ans%MOD;if(b&1)return a*ans%MOD;return ans%MOD;} int inv(int x){return fstpow(x,MOD-2);} int DMOD(int x,int y){x%=MOD;y%=MOD;return fstpow(x,inv(y));} int MMOD(int x,int y){x%=MOD;y%=MOD;return (x*y)%MOD;} //int AMOD(int x,int y){x%=MOD;y%=MOD;return (x+y)%MOD;} int SMOD(int x,int y){x%=MOD;y%=MOD;return (x-y+MOD)%MOD;} //int Factorial[N];void FAC(){Factorial[0]=1;for(int i=1;i<=2e6;i++)Factorial[i]=(Factorial[i-1]%MOD*i%MOD)%MOD;} //int PREFIX[3e6];void PFX(){PREFIX[0]=0;for(int i=1;i<=2e6;i++)PREFIX[i]=PREFIX[i]+PREFIX[i-1]+i;} //fill_n(&a[0][0],(n+1)*(m+1),valu); //int C(int x,int y){int A=1,B=1;for(int i=y+1;i<=x;i++)A*=i;for(int i=2;i<=x-y;i++)B*=i;return A/B;} pair <int , int> pfx[N] ; void slv() { int n , m ; cin >> n >> m ; int p = 0 ; for(int t = 0 ; t < m ; t++) { int s ; cin >> s ; vector <int> v(s) ; double sum = 0 , sum2 = 0 ; for(int i = 0 ; i < s ; i++) { cin >> v[i] ; sum += v[i] ; } for(int i = 0 ; i < s ; i++) { int l = n - (sum - sum2) + 1 , r = sum2 + v[i] + 1 ; if(r > l) pfx[++p] = {l , r - 1} ; sum2 += v[i] ; } } sort(pfx + 1 , pfx + p + 1) ; int ans = 0; int l = 0 , r = -1 ; for(int i = 1 ; i <= p ; i++) { if(pfx[i].f > r) { ans += r - l + 1 ; l = pfx[i].f ; r = pfx[i].s ; } else { r = max(r , pfx[i].s) ; } } ans += r - l + 1 ; cout << ans ; } main() { //FAST ; int t = 1 ; //cin >> t ; while(t--) slv() ; } //TLE Problem ? /* -> const MOD -> const int -> FAST -> "/n" | endl -> array size */ //MLE Problem ? /* -> array size() -> N ? -> long long -> define -> long long dp[1000][100000] ? ; */ //RTE problem ? /* -> array size ? -> x / 0 ? */

Compilation message (stderr)

lasers.cpp:81:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   81 | main()
      | ^~~~
#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...