Submission #478758

#TimeUsernameProblemLanguageResultExecution timeMemory
478758kshitij_sodaniDiversity (CEOI21_diversity)C++14
64 / 100
285 ms25516 KiB
//#pragma GCC optimize("Ofast,unroll-loops") #include <bits/stdc++.h> using namespace std; typedef long long llo; #define mp make_pair #define pb push_back #define a first #define b second #define endl '\n' //vector<llo> adj[200001]; llo it[300001]; llo dp[300001];//[30001]; llo dp2[300001]; llo pre[300001]; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); llo n,q; cin>>n>>q; map<llo,llo> ss; for(llo i=0;i<n;i++){ cin>>it[i]; ss[it[i]]++; } vector<llo> tt; for(auto j:ss){ tt.pb(j.b); } sort(tt.begin(),tt.end()); for(llo i=1;i<=tt.size();i++){ pre[i]=pre[i-1]+tt[i-1]; } llo m=tt.size(); llo ans=m*n*(n+1)-(m-1)*n; vector<llo> ee; for(llo i=0;i<tt.size();i+=2){ ee.pb(tt[i]); } for(llo i=tt.size()-1;i>=0;i--){ if(i%2==1){ ee.pb(tt[i]); } } llo su=0; //cout<<ans<<endl; for(llo i=0;i+1<ee.size();i++){ su+=ee[i]; ans-=su*su; ans-=(n-su)*(n-su); } /* for(auto j:ee){ cout<<j<<","; } cout<<endl;*/ //cout<<ans<<endl; /*if(m==1){ } else{ for(llo i=0;i<tt.size();i++){ for(llo j=0;j<=n;j++){ dp[j]=-(llo)1e18; } if(i==0){ dp[tt[0]]=tt[0]*tt[0]+(n-tt[0])*(n-tt[0]); } else{ for(llo j=0;j<=n;j++){ llo cur=j+pre[tt.size()]-pre[i]; llo su=0; su+=cur*cur; su+=(n-cur)*(n-cur); if(cur==n or cur==0){ su=0; } dp[j]=max(dp[j],dp2[j]+su); if(j>=tt[i]){ llo cur=j; llo su=0; su+=cur*cur; su+=(n-cur)*(n-cur); if(cur==n or cur==0){ su=0; } dp[j]=max(dp[j],dp2[j-tt[i]]+su); } } } for(llo j=0;j<=n;j++){ dp2[j]=dp[j]; } } llo ma=0; for(llo i=0;i<=n;i++){ ma=max(ma,dp[i]); } ans-=ma; }*/ ans/=2; //divide ans/2 while(q--){ llo l,r; cin>>l>>r; l--; r--; cout<<ans<<endl; } return 0; }

Compilation message (stderr)

diversity.cpp: In function 'int main()':
diversity.cpp:31:15: warning: comparison of integer expressions of different signedness: 'llo' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |  for(llo i=1;i<=tt.size();i++){
      |              ~^~~~~~~~~~~
diversity.cpp:38:15: warning: comparison of integer expressions of different signedness: 'llo' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   38 |  for(llo i=0;i<tt.size();i+=2){
      |              ~^~~~~~~~~~
diversity.cpp:48:17: warning: comparison of integer expressions of different signedness: 'llo' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |  for(llo i=0;i+1<ee.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...