救救孩子,用的动态数组40分,貌似总要少几个坚果
#include <stdio.h>
#include <algorithm>
int n;
struct zm{
int p;
int t;
}a[2005];
int *s[2005];
int c[2005];
int main(){
scanf("%d", &n);
for (int i = 1; i <= n; i++){
scanf("%d%d", &a[i].p, &a[i].t);
c[a[i].p]++;
}
// for (int i = 1; i <= 2000; i++){
// printf("%d ", c[i]);
// }
// printf("\n");
for (int i = 1; i <= 2000; i++)
{
s[i] = new int[c[i]];
}
for (int i = 1; i <= 2000; i++){
*s[i] = -1;
}
for (int i = 1; i <= n; i++)
{
*s[a[i].p] = a[i].t;
s[a[i].p]++;
}
// printf("\n");
for (int i = 1; i <= 2000; i++){
s[i] -= c[i];
std::sort(s[i], s[i] + c[i]);
}
// for (int i = 1; i <= 2000; i++){
// printf("%d: ", i);
// for (int j = 1; j <= c[i]; j++, s[i]++){
// printf("%d ", *s[i]);
// }
// printf("\n");
// }
int ans = 0;
for (int i = 1; i <= 2000; i++){
if (c[i] != 0){
ans++;
}
}
for (int i = 1; i <= 2000; i++)
{
s[i]++;
for (int j = 1; j < c[i]; j++, s[i]++)
{
if (*s[i] - *(s[i] - 1) >= 60)
{
ans++;
}
}
}
printf("%d", ans);
system("pause");
return 0;
}
怕不是我题意理解错了?? 求助大佬.