제출 #1338319

#제출 시각아이디문제언어결과실행 시간메모리
1338319voldi9Poi (IOI09_poi)C++20
60 / 100
230 ms9476 KiB
#include <cstdio>
#include <vector>
#include <algorithm>

using namespace std;

int n, t, p, b;

struct user {
  vector <int> solved;
  int index;
  int score;
};

bool userCmp(user a, user b)
{
    if (a.score != b.score)
      return a.score > b.score;
    if (a.solved.size() != b.solved.size())
      return a.solved.size() < b.solved.size();
    return a.index < b.index;
}

int main() {
  scanf("%d%d%d", &n, &t, &p);
  p--;
  vector<user> users(n); 
  vector<int> task_score(t);
  for (int i=0; i<n; i++) {
    user user{.index = i};
    for (int x=0; x<t; x++) {
      scanf("%d", &b);
      if(b)
        user.solved.push_back(x);
      else
        task_score[x]++;
    }
    users[i] = std::move(user);
  }
  for (int i=0; i<n; i++)
    for (int j=0; j<users[i].solved.size(); j++) 
      users[i].score += task_score[users[i].solved[j]];
  sort(users.begin(), users.end(), userCmp);
  for (int i=0; i<n; i++)
    if (users[i].index == p)
      printf("%d %d", users[i].score, i+1);
  return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

poi.cpp: In function 'int main()':
poi.cpp:25:8: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |   scanf("%d%d%d", &n, &t, &p);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~
poi.cpp:32:12: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   32 |       scanf("%d", &b);
      |       ~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...