dalao 求助!!!
测试点#3数据下载后代码运行是正确的,但为什么WA了?
输入:
100 80 20
29 21 19 23 18 15 24 15 29 19 10 14 14 25 16 16 18 16 22 22
94 1
54 2
58 3
52 4
30 5
68 6
96 7
77 8
75 9
33 10
36 11
38 12
31 13
50 14
80 15
82 16
43 17
99 18
42 19
37 20
55 1
63 7
58 2
43 6
62 7
43 20
67 4
96 6
77 10
38 11
33 12
45 3
50 1
35 18
48 3
30 12
51 10
50 13
64 7
59 10
83 2
94 13
33 6
50 1
80 16
88 4
36 19
53 11
93 15
54 7
56 11
92 4
51 20
49 14
67 18
83 7
78 16
47 12
87 4
53 11
94 8
48 8
85 8
48 3
92 20
89 6
93 8
57 3
58 7
48 15
84 3
79 16
62 2
77 9
62 18
55 4
96 13
30 5
59 12
36 3
92 12
31 2
30 18
76 16
67 19
89 17
35 3
64 10
34 19
90 7
63 8
56 12
82 15
68 1
39 2
89 5
43 4
46 9
68 19
75 4
输出:
3142
代码:
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,k,ans,pos_,t;
int op,temp;
int arr[105][205];
int cnt[105];
int pos[105];
int q[105];
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
cin>>n>>m>>k;
for(int i = 1;i<=k;i++)
{
cin>>cnt[i];
}
for(int i = 1;i<=n;i++)
{
cin>>temp>>op;
arr[op][++pos[op]] = temp;
}
for(int i = 1;i<=n;i++)
{
sort(arr[i]+1,arr[i]+pos[i]+1,cmp);
}
for(int i = 1;i<=n;i++)
{
for(int j = 1;j<=cnt[i];j++)
{
q[++pos_] = arr[i][j];
}
t+=cnt[i];
}
sort(q+1,q+t+1,cmp);
for(int i = 1;i<=m;i++)
ans+=q[i];
cout<<int(ans)<<endl;
return 0;
}
代码样例过了,但是WA。