3 条题解
-
1
From:庄力
#include<bits/stdc++.h> #define ll long long const int N=1e6+10; const int INF=0x3f3f3f3f; const int MOD=1e9+7; using namespace std; int read(){int x=0,ans=1;char c=getchar();while(c>'9'||c<'0'){if(c=='-')ans=-1;c=getchar();}while(c>='0'&&c<='9'){x=x*10+(c-'0');c=getchar();}return x*ans;} ll b,c,n,r,q,s[N],a[N],x[N],y[N],w[N]; bool cmp(int x,int y){ if(s[x]==s[y])return x<y; return s[x]>s[y]; } int main(){ cin.tie(0),cout.tie(0); cin>>n>>r>>q; n*=2; for(int i=1;i<=n;i++){ a[i]=i; cin>>s[i]; } for(int i=1;i<=n;i++)cin>>w[i]; sort(a+1,a+n+1,cmp); for(int i=1;i<=r;i++){ b=0; for(int j=1;j<=n;j+=2){ if(w[a[j]]>w[a[j+1]]){ s[a[j]]++; x[++b]=a[j]; y[b]=a[j+1]; } else{ s[a[j+1]]++; x[++b]=a[j+1]; y[b]=a[j]; } } ll l=1,j=1,k=1; while(l<=b && j<=b){ if(cmp(x[l],y[j]))a[k++]=x[l++]; else a[k++]=y[j++]; } while(l<=b)a[k++]=x[l++]; while(j<=b)a[k++]=y[j++]; } cout<<a[q]; }
信息
- ID
- 716
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 28
- 已通过
- 6
- 上传者