답안 #718114

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
718114 2023-04-03T11:18:03 Z Augustyn Med (COCI22_med) C++17
0 / 50
0 ms 212 KB
#include<iostream>
#include<algorithm>
using namespace std;
struct zawodnik
{
    int wynik;
    long long 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;
long pot26[11];
zawodnik *zawodnicy,*orgzaw;
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];
    orgzaw=new zawodnik[n];
    for(int i=0;i<n;++i)    
    {
        string imie;
        cin>>imie;
        int dlu=imie.length();
        for(int j=0;j<dlu;++j)
        {
            zawodnicy[i].imie+=pot26[dlu-j-1]*(imie[j]-'a');
        }
        int wyn;
        for(int j=0;j<5;++j)
        {
            cin>>wyn;
            zawodnicy[i].wynik+=wyn;
        }
        orgzaw[i]=zawodnicy[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>orgzaw[i].wynik+500)
                ++j;
            else if(zawodnicy[j].wynik==orgzaw[i].wynik+500)
            {
                if(zawodnicy[j].imie<orgzaw[i].imie)
                    ++j;
                else
                    break;
            }
            else
                break;
        }
        while(k<n)
        {
            if(zawodnicy[k].wynik>orgzaw[i].wynik-500)
                ++k;
            else if(zawodnicy[k].wynik==orgzaw[i].wynik-500)
            {
                if(zawodnicy[k].imie<orgzaw[i].imie)
                    ++k;
                else
                    break;
            }
            else
                break;
        }
        printf("%d %d\n",j+1,k);
    }

}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -