为何爆0
  • 板块灌水区
  • 楼主_LFC_
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/11/6 06:36
  • 上次更新2024/11/6 14:52:50
查看原帖
为何爆0
1431280
_LFC_楼主2024/11/6 06:36

RT

J组T3,样例都过了,但交到洛谷上发现RE了


#include <bits/stdc++.h>
using namespace std;
int n;
int a[20] = {6, 2, 5, 5, 4, 5, 6, 3, 7, 6};

int Get (int now) {
	if (!now) return 0;
	return (now - 1) / 7 + 1; 
}

int Sticks () {
	if (n <= 1) cout << -1;
	else {
		int sta = 1;
		string s = "";
		int f = 0;
		while (n) {
			if (n % 7 == 0) {
				int t = n / 7;
				for (int i = 1; i <= t; i ++) putchar ('8');
				break;
			} else if ((n - 1) % 7 == 0) {
				printf ("10");
				int t = (n - 1) / 7 - 1;
				for (int i = 1; i <= t; i ++) putchar ('8');
				break;
			}
			int minn = 0x3f3f3f, t = 0;
			for (int i = sta; i <= 9; i ++) {
				int need = Get (n - a[i]);
				if (need < minn) {
					t = i;
					minn = need;
				}
			}
			n -= a[t];
			sta = 0;
			putchar (char (t + '0'));
		}
		
	}
	cout << '\n';
}

int main () {
	freopen ("sticks.in", "r", stdin);
	freopen ("sticks.out", "w", stdout);
	int t;
	scanf ("%d", &t);
	while (t --) {
		scanf ("%d", &n);
		Sticks ();
	}
	return 0;
}

2024/11/6 06:36
加载中...