Submission #140100

#TimeUsernameProblemLanguageResultExecution timeMemory
140100KLPPCake 3 (JOI19_cake3)C++14
0 / 100
2 ms376 KiB
#include<bits/stdc++.h>

using namespace std;
typedef long long int lld;
typedef pair<lld,lld> pii;
#define rep(i,a,b) for(int i=a;i<b;i++)
#define trav(a,v) for(auto a:v)
#define INF 1000000000000000000

int main(){
  int n,m;
  scanf("%d %d",&n,&m);
  pii cakes[n];
  rep(i,0,n){
    scanf("%lld %lld",&cakes[i].second,&cakes[i].first);
  }
  sort(cakes,cakes+n);
  //rep(i,0,n)cout<<cakes[i].first<<" "<<cakes[i].second<<endl;
  lld sum_1[n];
  lld sum_2[n];
  sum_1[0]=cakes[0].second;
  sum_2[0]=0;
  rep(i,1,n){
    sum_1[i]=sum_1[i-1]+cakes[i].second;
    sum_2[i]=sum_1[i-1];
  }
  rep(i,0,n){
    sum_1[i]-=cakes[i].first*2;
    sum_2[i]-=cakes[i].first*2;
    //cout<<sum_1[i]<<" "<<sum_2[i]<<endl;
  }
  lld ans=-INF;
  for(int i=0;i+m-1<n;i++){
    ans=max(ans,sum_1[i+m-1]-sum_2[i]);
    //cout<<ans<<endl;
  }
  printf("%lld\n",ans);
  /*rep(i,0,(1<<n)){
    vector<int> v;
    rep(j,0,n){
      if(((1<<j)&i)>0){
	v.push_back(j);
      }
    }
    if(v.size()==m){
      lld sum=0;
      lld Max=-INF;
      lld Min=INF;
      trav(a,v){
	Max=max(Max,cakes[v[a]].first);
	Min=min(Min,cakes[v[a]].first);
	sum+=cakes[v[a]].second;
      }
      if(sum-2*(Max-Min)==2323231661){
	trav(a,v)cout<<a<<endl;
      }
    }
  }*/
  return 0;
}

Compilation message (stderr)

cake3.cpp: In function 'int main()':
cake3.cpp:12:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d",&n,&m);
   ~~~~~^~~~~~~~~~~~~~~
cake3.cpp:15:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%lld %lld",&cakes[i].second,&cakes[i].first);
     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...