洛谷P1097

    xiaoxiao2025-02-08  44

    这道题应该是很简单的,但是由于我的算法不好,不能满分。日后再来改进。

    #include<iostream> #include<cstdio> #include<algorithm> using namespace std; struct num{ long long a; int idx; }; num s[200005]; bool cmp(num b,num c){ return b.a<a.c; } int main(){ int n; cin>>n; for(int i=0;i<n;++i)scanf("%lld",&s[i]); sort(s,s+n,cmp); for(int i=0;i<n;++i){ s[i].idx=1; for(int j=i+1;j<n;++j) if(s[i].a==s[j].a){ s[i].idx++;s[i].a=-1; } } sort(s,s+n,cmp); for(int i=0;i<n;++i) if(s[i].a!=-1){while(1); printf("%lld %d\n",s[i].a,s[i].idx);} return 0; }
    最新回复(0)