| Task: | Kayaks |
| Sender: | PLS2020 |
| Submission time: | 2020-10-03 14:47:46 +0300 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | details |
| #2 | ACCEPTED | 0.01 s | details |
| #3 | ACCEPTED | 0.01 s | details |
| #4 | ACCEPTED | 0.01 s | details |
| #5 | ACCEPTED | 0.01 s | details |
| #6 | ACCEPTED | 0.01 s | details |
| #7 | ACCEPTED | 0.01 s | details |
| #8 | ACCEPTED | 0.01 s | details |
| #9 | ACCEPTED | 0.01 s | details |
| #10 | ACCEPTED | 0.01 s | details |
| #11 | ACCEPTED | 0.01 s | details |
| #12 | ACCEPTED | 0.01 s | details |
Code
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
bool cmp(pair<int, int> a, pair<int, int> b) {
return a.second > b.second;
}
int main() {
int n, m;
cin >> n >> m;
vector<pair<int, int>> position;
string st;
for (int i = 0; i < n; i++) {
cin >> st;
for (int j = 0; j < m; j++) {
if (isdigit(st[j])) {
position.push_back({(int)st[j] - '0' - 1, j});
break;
}
}
}
int N = position.size();
// for (int i = 0; i < N; i++)
// cout << position[i].first << " " << position[i].second << endl;
// cout << endl;
sort(position.begin(), position.end(), cmp);
// for (int i = 0; i < N; i++)
// cout << position[i].first << " " << position[i].second << endl;
// cout << endl;
vector<int> ranks;
ranks.reserve(n + 1);
int i = 0;
int c_rank = 1;
while (i < N) {
ranks[position[i].first] = c_rank;
if (i + 1 < N && position[i + 1].second < position[i].second)
c_rank++;
i++;
}
for (int i = 0; i < N; i++)
cout << ranks[i] << endl;
return 0;
}Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 10 15
S..........222F S.....111.....F S...333.......F S...555.......F ... |
| correct output |
|---|
| 5
1 6 3 6 ... |
| user output |
|---|
| 5 1 6 3 6 ... |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 10 10
S.....111F S....222.F S...333..F S..444...F ... |
| correct output |
|---|
| 1
2 3 4 5 ... |
| user output |
|---|
| 1 2 3 4 5 ... |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10 10
S...111..F S....222.F S.....333F S444.....F ... |
| correct output |
|---|
| 3
2 1 6 5 ... |
| user output |
|---|
| 3 2 1 6 5 ... |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 10 20
S..................F S...111............F S......222.........F S.........333......F ... |
| correct output |
|---|
| 9
7 5 3 1 ... |
| user output |
|---|
| 9 7 5 3 1 ... |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 20 20
S999...............F S..................F S..................F S..................F ... |
| correct output |
|---|
| 5
3 7 6 4 ... |
| user output |
|---|
| 5 3 7 6 4 ... |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 30 30
S............................F... |
| correct output |
|---|
| 1
6 5 4 3 ... |
| user output |
|---|
| 1 6 5 4 3 ... |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 30 30
S111.........................F... |
| correct output |
|---|
| 1
1 1 1 1 ... |
| user output |
|---|
| 1 1 1 1 1 ... |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 30 30
S111.........................F... |
| correct output |
|---|
| 7
6 5 3 2 ... |
| user output |
|---|
| 7 6 5 3 2 ... |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 30 30
S............................F... |
| correct output |
|---|
| 1
1 1 1 3 ... |
| user output |
|---|
| 1 1 1 1 3 ... |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 30 30
S............................F... |
| correct output |
|---|
| 5
3 3 3 1 ... |
| user output |
|---|
| 5 3 3 3 1 ... |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 30 30
S............................F... |
| correct output |
|---|
| 6
5 3 5 4 ... |
| user output |
|---|
| 6 5 3 5 4 ... |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 30 30
S............................F... |
| correct output |
|---|
| 5
4 3 1 2 ... |
| user output |
|---|
| 5 4 3 1 2 ... |
