Submission #961859

# Submission time Handle Problem Language Result Execution time Memory
961859 2024-04-12T14:59:15 Z rithvick_2004 Poi (IOI09_poi) C++14
100 / 100
172 ms 20052 KB
#include<bits/stdc++.h>
using namespace std;
struct finale
{
    int id;
    int p_solved;
    int score;
    bool operator< (const finale &F)
    {
        if(score!=F.score) return (score>F.score);
        else if( p_solved!=F.p_solved) return(p_solved>F.p_solved);
        else return(id<F.id);
    }
};
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int N,T,P;
    cin>>N>>T>>P; //no choice
    int k; //help variable
    int Contestant[N][T+1]; //N is number of participants and T is for task Contestant[N][T] stores the number of questions solved
    int points[T]; //giving points for each task
    fill(points,points+T,N); //initially all points are N
    for (int i = 0; i < N; i++)
    {
        Contestant[i][T] =0;
        for (int j = 0; j < T; j++)
        {
            cin>>k; // this is 1 or 0 but i took int so that I don't get a weird error
            points[j]=points[j]-k; //understandable
            Contestant[i][j]=k; //the 2D array get's filled
            Contestant[i][T] =Contestant[i][T] +k;
        }
    }// all inputs taken and the points of each task
    vector<finale> data(N);
    for(int i=0; i<N;i++)
    {
        data[i].id=i+1;
        data[i].p_solved=Contestant[i][T];
        data[i].score =0;
        for(int j =0; j<T;j++)
        {
            data[i].score=data[i].score+(Contestant[i][j])*(points[j]);
        }
    }
    k=data[P-1].score;
    cout<<k<<" ";
    sort(data.begin(),data.end());
    //now comes the rubbish O(n) part
    for(int i=0; i<N;i++)
    {
        if(P==data[i].id)
        {
            cout<<i+1;
            break;
        }
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 456 KB Output is correct
3 Correct 1 ms 348 KB Output is correct
4 Correct 0 ms 460 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 1 ms 348 KB Output is correct
7 Correct 1 ms 360 KB Output is correct
8 Correct 1 ms 456 KB Output is correct
9 Correct 1 ms 348 KB Output is correct
10 Correct 2 ms 628 KB Output is correct
11 Correct 6 ms 980 KB Output is correct
12 Correct 9 ms 1628 KB Output is correct
13 Correct 30 ms 3540 KB Output is correct
14 Correct 43 ms 4784 KB Output is correct
15 Correct 73 ms 7960 KB Output is correct
16 Correct 76 ms 8588 KB Output is correct
17 Correct 110 ms 12392 KB Output is correct
18 Correct 137 ms 13840 KB Output is correct
19 Correct 172 ms 18256 KB Output is correct
20 Correct 172 ms 20052 KB Output is correct