Submission #423718

# Submission time Handle Problem Language Result Execution time Memory
423718 2021-06-11T11:44:24 Z ignaciocanta Poi (IOI09_poi) C++14
100 / 100
367 ms 15988 KB
#include <bits/stdc++.h>

using namespace std;

//#include <ext/pb_ds/assoc_container.hpp>
//using namespace __gnu_pbds;
//template<class T> using Tree = tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>;
 
using tint = long long;
using ld = long double;
 
#define FOR(i,a,b) for (int i = (a); i < (b); ++i)
#define F0R(i,a) FOR(i,0,a)
#define ROF(i,a,b) for (int i = (b)-1; i >= (a); --i)
#define R0F(i,a) ROF(i,0,a)
#define trav(a,x) for (auto& a: x)	
 
using pi = pair<int,int>;
using pl = pair<tint,tint>;
using vi = vector<int>;
using vpi = vector<pi>;
using vpl = vector<pl>;
using vvi = vector<vi>;
using vl = vector<tint>;
using vb = vector<bool>;
 
#define pb push_back
#define pf push_front
#define rsz resize
#define all(x) begin(x), end(x)
#define rall(x) x.rbegin(), x.rend() 
#define sz(x) (int)(x).size()
#define ins insert
 
#define f first
#define s second
#define mp make_pair
 
#define DBG(x) cerr << #x << " = " << x << endl;
 
const int MOD = 1e9+7; 
const int mod = 998244353;
const int MX = 2005;
const tint INF = 1e18; 
const int inf = 2e8;
const ld PI = acos(ld(-1)); 
const ld eps = 1e-5;
 
const int dx[4] = {1, -1, 0, 0};
const int dy[4] = {0, 0, 1, -1};
 
template<class T> void remDup(vector<T> &v){ 
    sort(all(v)); v.erase(unique(all(v)),end(v));
}
 
template<class T> bool ckmin(T& a, const T& b) {
    return b < a ? a = b, 1 : 0; 
} 
template<class T> bool ckmax(T& a, const T& b) {
    return a < b ? a = b, 1 : 0; 
}
 
bool valid(int x, int y, int n, int m){
    return (0<=x && x<n && 0<=y && y<m);
}
 
int cdiv(int a, int b) { return a/b+((a^b)>0&&a%b); } //redondea p arriba
int fdiv(int a, int b) { return a/b-((a^b)<0&&a%b); } //redondea p abajo
 
void NACHO(string name = ""){
    ios_base::sync_with_stdio(0); cin.tie(0);
    if(sz(name)){
        freopen((name+".in").c_str(), "r", stdin);
        freopen((name+".out").c_str(), "w", stdout);
    }
}

int a[MX][MX];
int quan[MX];

struct Contestant{
	int id, pts, quan;
	bool operator<(const Contestant& o)const{
		if(pts  == o.pts){
			if(quan == o.quan) return id < o.id;
			return quan > o.quan;
		}
		return pts > o.pts;
	}
};

int main(){
	NACHO();
	int n, t, p; cin >> n >> t >> p;
	--p;
	F0R(i, n){
		F0R(j, t){
			cin >> a[i][j];
			if(a[i][j] == 1) ++quan[j];
		}
	}
	vector<Contestant> c (n);
	F0R(i, n){
		int tot = 0;
		int q = 0;
		F0R(j, t){
			if(a[i][j] == 1) tot += n-quan[j], ++q;
		}
		c[i] = {i, tot, q};
	}
	sort(all(c));
	int points, pos;
	F0R(i, n){
		if(c[i].id == p){
			points = c[i].pts;
			pos = i+1;
		}
	}
	cout << points << " " << pos << "\n";
}
/*
5 3 2 
0 0 1 
1 1 0 
1 0 0 
1 1 0 
1 1 0
*/

Compilation message

poi.cpp: In function 'void NACHO(std::string)':
poi.cpp:73:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   73 |         freopen((name+".in").c_str(), "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poi.cpp:74:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   74 |         freopen((name+".out").c_str(), "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
poi.cpp: In function 'int main()':
poi.cpp:119:34: warning: 'pos' may be used uninitialized in this function [-Wmaybe-uninitialized]
  119 |  cout << points << " " << pos << "\n";
      |                                  ^~~~
poi.cpp:119:20: warning: 'points' may be used uninitialized in this function [-Wmaybe-uninitialized]
  119 |  cout << points << " " << pos << "\n";
      |                    ^~~
# Verdict Execution time Memory Grader output
1 Correct 0 ms 332 KB Output is correct
2 Correct 0 ms 332 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Correct 1 ms 332 KB Output is correct
6 Correct 1 ms 460 KB Output is correct
7 Correct 1 ms 588 KB Output is correct
8 Correct 1 ms 588 KB Output is correct
9 Correct 2 ms 716 KB Output is correct
10 Correct 3 ms 1228 KB Output is correct
11 Correct 11 ms 1888 KB Output is correct
12 Correct 17 ms 3020 KB Output is correct
13 Correct 49 ms 5424 KB Output is correct
14 Correct 71 ms 7648 KB Output is correct
15 Correct 129 ms 9708 KB Output is correct
16 Correct 137 ms 10436 KB Output is correct
17 Correct 200 ms 12100 KB Output is correct
18 Correct 241 ms 13636 KB Output is correct
19 Correct 291 ms 15988 KB Output is correct
20 Correct 367 ms 15940 KB Output is correct