话说RUPENG同学的方法一点理性光辉都木有.....我正监考托福考试,无聊刷下 #include<iostream> #include<cstdlib> //#include <cstdio> #define M 2020 using namespace std; int ini[M]; void qsort(int *a, int l, int r) { if(l>=r) return; int p = l, q = r, f = (rand())%(r - l); int t = a[l+f]; a[l+f] = a[p]; while(p<q){ while(p<q && a[q]>=t ) q--; a[p]=a[q]; while(p<q && a[p]<=t ) p++; a[q]=a[p]; } a[p] = t; qsort(a,l,p-1); qsort(a,p+1,r); } int main(){ int noc,fi,bi; cin>>noc; while(noc--){ int n,f,b; cin>>n>>f>>b; for(int i=0; i<n; ++i) { cin>>fi>>bi; if(bi) { ini[i] = f + fi; ++b; } else ini[i] = f - fi; } qsort(ini,0,n-1); int count; f*=2; if(b<=n){ count = f - ini[ n - b]; } else if(b%n==0){ count = (b/n -1)*f; count += f - ini[0]; } else{ count = (b/n)*f; int left = b%n; count += f - ini[ n - left]; } cout<<count<<endl; } return 0; }