https://www.acmicpc.net/problem/1205
1205번: 등수 구하기
첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보
www.acmicpc.net
쉽네용
#include <iostream>
#include <vector>
#include <queue>
#include<string>
#include<algorithm>
#include<cmath>
#include<unordered_map>
#include<map>
#include<stack>
using namespace std;
struct Point {
int i, j, t, cnt, power;
char c;
};
void Prints(vector<vector<int>>maps, int n, int m) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << maps[i][j] << " ";
}
cout << endl;
}
cout << endl;
}
void Prints(vector<vector<bool>>maps, int n, int m) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << maps[i][j] << " ";
}
cout << endl;
}
cout << endl;
}
void Prints(vector<vector<char>>maps, int n, int m) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << maps[i][j];
}
cout << endl;
}
cout << endl;
}
void Prints(vector<vector<vector<char>>>maps, int n, int m, int k) {
for (int t = 0; t < k; t++) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << maps[t][i][j];
}
cout << endl;
}
cout << endl;
}
cout << endl;
}
void Prints(vector<vector<vector<bool>>>maps, int n, int m, int k) {
for (int t = 0; t < k; t++) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cout << maps[t][i][j];
}
cout << endl;
}
cout << endl;
}
cout << endl;
}
void Prints(vector<int>line, int n) {
for (int i = 0; i < n; i++) {
cout << line[i] << ",";
}
cout << endl;
}
void Prints(string str, int n) {
for (int i = 0; i < n; i++) {
cout << str[i] << ",";
}
cout << endl;
}
struct Data {
long long value;
long long index;
};
void Prints(vector<Data>line, int n) {
cout << endl;
for (int i = 0; i < n; i++) {
cout << line[i].index<<",";
}
cout << endl;
}
bool compares(const Data&a, const Data&b) {
if (a.index > b.index) {
return true;
}
else if (a.index == b.index) {
if (a.value > b.value) {
return true;
}
}
return false;
}
int main() {
long long n, t, p;
cin >> n >> t >> p;
vector<Data>lists;
for (int i = 0; i < n; i++) {
int tmp;
cin >> tmp;
Data d;
d.index = tmp;
d.value = 1;
lists.push_back(d);
}
int gCnt = -1;
Data anw;
anw.index = t;
anw.value = 0;
lists.push_back(anw);
sort(lists.begin(), lists.end(), compares);
//Prints(lists, n+1);
for (int i = 0; i < p; i++) {
int rank = 1;
if (lists.size()-1 >= i) {
for (int j = 0; j < lists.size(); j++) {
if (lists[j].index != lists[i].index) {
rank++;
}
else if (anw.index == lists[i].index&&anw.value== lists[i].value) { //100 ==100
//rank++;
gCnt = rank;
// cout << rank << ":" << lists[j].index << "," << endl;
j = lists.size() + 1;
continue;
}
}
}
}
cout << gCnt;
return 0;
}