没有输出,各位大佬帮蒟蒻看一下,作为报酬,奖励关注,感谢!!!
  • 板块学术版
  • 楼主Cells
  • 当前回复13
  • 已保存回复13
  • 发布时间2023/8/12 09:37
  • 上次更新2023/11/3 04:20:40
查看原帖
没有输出,各位大佬帮蒟蒻看一下,作为报酬,奖励关注,感谢!!!
556908
Cells楼主2023/8/12 09:37

字符串没输出

题目:水王争霸

代码:

# include <bits/stdc++.h>
using namespace std;

const int N = 1e3 + 10, M = 1e4 + 10;

int n;

struct longnum{
	string id;
	int l, d[M];
	
	longnum(){}
	
	longnum(string a){
		l = a.size();
		for(int i = 1; i <= l; i ++) d[i] = a[l - i] - '0';
	}
	
	friend ostream& operator << (ostream &out, longnum a){
		out << a.id;
		
		return out;
	}
	
	friend istream& operator >> (istream &in, longnum &a){
		string s;
		in >> s;
		a = s;
		
		return in;
	}
}q[N];

bool cmp(longnum a, longnum b){
	if(a.l != b.l) return a.l > b.l;
	for(int i = a.l; i >= 1; i --)
		if(a.d[i] != b.d[i]) return a.d[i] > b.d[i];
	
	int la = a.id.size();
	int lb = b.id.size();
	for(int i = 0; i < min(la, lb); i ++)
		if(a.id[i] != b.id[i]) return a.id[i] < b.id[i];
	
	return la > lb;
}

int main(){
	scanf("%d", &n);
	for(int i = 1; i <= n; i ++){
		cin >> q[i].id;
		cin >> q[i];
	}
	
	sort(q + 1, q + 1 + n, cmp);
	
	for(int i = 1; i <= n; i ++){
		cout << q[i];
		printf("\n");
	}
	
	return 0;
}
2023/8/12 09:37
加载中...