1100*B. Maximum Rounding(贪心)

Problem - 1857B - Codeforces

1100*B. Maximum Rounding(贪心)_第1张图片

#include
using namespace std;
#define int long long
const int N=2e5+5;
int n,a,b;
void solve(){
	string s;
	cin>>s;
	vectora;
	for(int i=s.size()-1;i>=0;i--) a.push_back(s[i]-'0');
	a.push_back(0);
	for(int i=a.size()-2;i>=0;i--){
		if(a[i]>=5){
			for(int j=i;j<=a.size()-2;j++){
				if(a[j]>=5){
					a[j]=0;
					a[j+1]++;
				}
			}
			for(int j=0;j0) printf("%lld",a[a.size()-1]);
	for(int i=a.size()-2;i>=0;i--) printf("%lld",a[i]);
	printf("\n");
}
signed main(){
	int t=1;
	scanf("%lld",&t);
	while(t--) solve();
	return 0;
}

 

你可能感兴趣的:(codeforces,算法,c++,数据结构,c语言,开发语言)