拿错了?为什么是60分?
  • 板块P1781 宇宙总统
  • 楼主imljw
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/1/14 21:18
  • 上次更新2023/10/28 12:21:29
查看原帖
拿错了?为什么是60分?
527064
imljw楼主2022/1/14 21:18

{

#include <bits/stdc++.h>
using namespace std;
struct bigint
{
    int len, a[110], m;
    bigint(int x = 0){
        memset(a, 0, 440);
        for(len = 1;x;len++){
            a[len] = x % 10;
            x /= 10;
        }
        len--;
    }
    int &operator[](int i){
        return a[i];
    }
    void scan(){
        string b;
        cin >> b;
        reverse(b.begin(), b.end());
        for(int i = 1;i <= b.size();i++){
            a[i] = b[i-1] - '0';
        }
        len = b.size();
    }
    void flatten(){
        for(int i = 1;i <= len;i++){
            a[i+1] += a[i] / 10;
            a[i] %= 10;
        }
        while(a[len] == 0){
            len--;
        }
    }
    void print(){
        for(int i = max(len,1);i >= 1;i--){
            cout << a[i];
        }
    }
    
};
bool operator>(bigint a, bigint b){
    if(a.len != b.len){
        if(a.len > b.len)
        return true;
        else
        return false;
    }else{
        for(int i = 1;i <= a.len;i++){
            if(a[i] < b[i])
            return false;
        }
        return true;
    }
}
bool cmp(bigint a, bigint b){
    return a > b;
}
bigint a[25];
int main(){
    int n;
    cin >> n;
    for(int i = 1;i <= n;i++){
        a[i].scan();
        a[i].m = i;
    }
    sort(a+1, a+n+1, cmp);
    cout << a[1].m << endl;
    a[1].print();
}
2022/1/14 21:18
加载中...