Submission #777846

# Submission time Handle Problem Language Result Execution time Memory
777846 2023-07-09T18:32:21 Z mindiyak Poi (IOI09_poi) C++14
100 / 100
499 ms 17100 KB
#include <bits/stdc++.h>
using namespace std;

/* clang-format off */

/* TYPES  */
#define ll long long
#define pii pair<int, int>
#define pll pair<long long, long long>
#define vi vector<int>
#define vb vector<bool>
#define vll vector<long long>
#define mii map<int, int>
#define si set<int>
#define sc set<char>

/* FUNCTIONS */
#define f(i,s,e) for(long long int i=s;i<e;i++)
#define cf(i,s,e) for(long long int i=s;i<=e;i++)
#define rf(i,e,s) for(long long int i=e-1;i>=s;i--)
#define pb push_back
#define mp make_pair

/* PRINTS */
template <class T>
void print_v(vector<T> &v) { cout << "{"; for (auto x : v) cout << x << ","; cout << "\b}"; }

/* UTILS */
#define MOD 1000000007
#define PI 3.1415926535897932384626433832795
ll min(ll a,int b) { if (a<b) return a; return b; }
ll min(int a,ll b) { if (a<b) return a; return b; }
ll max(ll a,int b) { if (a>b) return a; return b; }
ll max(int a,ll b) { if (a>b) return a; return b; }
ll gcd(ll a,ll b) { if (b==0) return a; return gcd(b, a%b); }
ll lcm(ll a,ll b) { return a/gcd(a,b)*b; }
string to_upper(string a) { for (int i=0;i<(int)a.size();++i) if (a[i]>='a' && a[i]<='z') a[i]-='a'-'A'; return a; }
string to_lower(string a) { for (int i=0;i<(int)a.size();++i) if (a[i]>='A' && a[i]<='Z') a[i]+='a'-'A'; return a; }
bool prime(ll a) { if (a==1) return 0; for (int i=2;i<=round(sqrt(a));++i) if (a%i==0) return 0; return 1; }
void yes() { cout<<"YES\n"; }
void no() { cout<<"NO\n"; }
#define op() ios_base::sync_with_stdio(0);cin.tie(0);//cout.tie(0);

/*  All Required define Pre-Processors and typedef Constants */
typedef long int int32;
typedef unsigned long int uint32;
typedef long long int int64;
typedef unsigned long long int  uint64;


/* clang-format on */


void solve(){

    int N,T,P;cin >> N >> T >> P;
    vector<vi> arr;
    vi points(T,N);
    vector<pair<int,pair<int,int>>> standings;
    f(i,0,N){
        vi temp(T,0);
        arr.pb(temp);
    }

    f(i,0,N){
        f(j,0,T){
           cin >> arr[i][j];
           if(arr[i][j]){
            points[j]--;
           }
        }
    }

    // f(j,0,T){
    //     cout << points[j] << " ";
    // }cout << endl;

    f(i,0,N){   
        int solved = 0;
        int score = 0;
        f(j,0,T){
           if(arr[i][j]){
             score += points[j];
             solved +=1;
           }
        }
        standings.pb(mp(score,mp(solved,N-i)));
        // cout << i+1 << " -> " << score << " " << solved << " " << i << endl;
    }

    sort(standings.rbegin(),standings.rend());

    f(i,0,N){   
        if(standings[i].second.second == N-(P-1)){
            cout << standings[i].first << " " << i+1 << endl;
        }
    }

}





/* Main()  function */
int main()
{
    // op();
	int tc = 1;
	// cin >> tc;

	while(tc--){
        solve();
	}
	return 0;
}
/* Main() Ends Here */
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 1 ms 300 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 212 KB Output is correct
6 Correct 1 ms 292 KB Output is correct
7 Correct 1 ms 308 KB Output is correct
8 Correct 1 ms 340 KB Output is correct
9 Correct 2 ms 312 KB Output is correct
10 Correct 4 ms 468 KB Output is correct
11 Correct 15 ms 952 KB Output is correct
12 Correct 25 ms 1480 KB Output is correct
13 Correct 89 ms 3656 KB Output is correct
14 Correct 103 ms 4652 KB Output is correct
15 Correct 185 ms 7220 KB Output is correct
16 Correct 204 ms 7852 KB Output is correct
17 Correct 293 ms 10788 KB Output is correct
18 Correct 336 ms 11984 KB Output is correct
19 Correct 437 ms 15512 KB Output is correct
20 Correct 499 ms 17100 KB Output is correct