Submission #718136

# Submission time Handle Problem Language Result Execution time Memory
718136 2023-04-03T12:00:35 Z Augustyn Med (COCI22_med) C++17
50 / 50
1 ms 340 KB
#include<iostream>
#include<algorithm>
using namespace std;
struct zawodnik
{
    int wynik;
    int org;
    string imie;
};
bool comp(zawodnik a,zawodnik b)
{
    if(a.wynik<b.wynik)
    return 0;
    else if(b.wynik<a.wynik)
    return 1;
    return a.imie<b.imie;
}
int n;
unsigned long long pot26[11];
zawodnik *zawodnicy;
int **odp;
int main()
{
    pot26[0]=1;
    for(int i=1;i<=10;++i)
        pot26[i]=pot26[i-1]*26;
    ios_base::sync_with_stdio(0);
    cin>>n;
    zawodnicy=new zawodnik[n];
    odp=new int *[n];
    for(int i=0;i<n;++i)    
    {
        odp[i]=new int[2];
        string imie;
        cin>>zawodnicy[i].imie;
        int wyn;
        for(int j=0;j<5;++j)
        {
            cin>>wyn;
            zawodnicy[i].wynik+=wyn;
        }
        zawodnicy[i].org=i;
    }
    sort(zawodnicy,zawodnicy+n,comp);
    int j=0,k=0;
    for(int i=0;i<n;++i)
    {
        while(j<n)
        {
            if(zawodnicy[j].wynik>zawodnicy[i].wynik+500)
                ++j;
            else if(zawodnicy[j].wynik==zawodnicy[i].wynik+500)
            {
                if(zawodnicy[j].imie<zawodnicy[i].imie)
                    ++j;
                else
                    break;
            }
            else
                break;
        }
        while(k<n)
        {
            if(zawodnicy[k].wynik>zawodnicy[i].wynik-500)
                ++k;
            else if(zawodnicy[k].wynik==zawodnicy[i].wynik-500)
            {
                if(zawodnicy[k].imie<zawodnicy[i].imie)
                    ++k;
                else
                    break;
            }
            else
                break;
        }
        odp[zawodnicy[i].org][0]=j+1;
        odp[zawodnicy[i].org][1]=k;
    }
    for(int i=0;i<n;++i)
        cout<<odp[i][0]<<" "<<odp[i][1]<<"\n";

}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 0 ms 212 KB Output is correct
3 Correct 0 ms 212 KB Output is correct
4 Correct 1 ms 212 KB Output is correct
5 Correct 1 ms 340 KB Output is correct
6 Correct 1 ms 324 KB Output is correct
7 Correct 1 ms 340 KB Output is correct
8 Correct 1 ms 332 KB Output is correct
9 Correct 1 ms 340 KB Output is correct