你不贴代码怎么叫人给你改?
@[mooktian](/user/890321)
by MsgNotFound @ 2024-03-06 20:24:27
@[42_TZY](/user/906900) ```cpp
#include <bits/stdc++.h>
#define f(i,a,b) for(int i=a;i<=b;i++)
#define g(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
int g[30];//滚球得分
char c;
struct lunci {
int score,aft;//score分数,aft后续滚球能得分的次数
}a[30];
int sum[30];//累计和
void addaft(int j,int i) {
for(int k = max(1,j - 2);k < j;k++) {
if(a[k].aft > 0) a[k].score += g[i],a[k].aft--;
}
}
int main(){
int cnt = 1,cnt2 = 0;//cnt2每轮滚球可能有两次,cnt滚球次数
while(cin >> c) {
if(c == '/') {
if(cnt2 == 1) {
g[cnt] = 10 - g[cnt-1];
cnt2 = 0;
}else {
g[cnt] = 10;
}
}else {
if(cnt2 == 0) {
cnt2++;
g[cnt] = c - '0';
}else {
g[cnt] = c - '0';
cnt2 = 0;
}
}
cnt++;
}
cnt--;
//for(int i = 1;i <= cnt;i++) cout << g[i] <<" ";
//cout <<"\n";
int j = 1,i = 1;//记录轮次
while(j <= 12 && i <= cnt) {
if(g[i] == 10) a[j].score = g[i],a[j].aft = 2,addaft(j,i),i++,j++;
if(g[i] < 10) {
if(i < cnt) {
a[j].score = g[i] + g[i+1];
if(a[j].score < 10) a[j].aft = 0;
else a[j].aft = 1;
addaft(j,i);
addaft(j,i+1);
i += 2;
j++;}else {
a[j].score = g[i],a[j].aft = 2,addaft(j,i),i++;
}
}
}
while(a[j].score == 0) j--;
for(int k = 1;k <= j;k++) {
if(a[k].aft == 0) {
cout << a[k].score <<" ";
sum[k] += sum[k-1] + a[k].score;
}
}
cout <<"\n";
for(int k = 1;k <= j;k++) if(a[k].aft == 0) cout << sum[k] << " ";
return 0;
}
```
马蜂不好,大佬帮看看,这题应该数据都比较简单,我就是不知道错在哪了,看不到2号点的数据
by mooktian @ 2024-03-06 23:38:21
@[42_TZY](/user/906900)
```cpp
#include <bits/stdc++.h>
#define f(i,a,b) for(int i=a;i<=b;i++)
#define g(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
int g[30];//滚球得分
char c;
struct lunci {
int score,aft;//score分数,aft后续滚球能得分的次数
}a[30];
int sum[30];//累计和
void addaft(int j,int i) {
for(int k = max(1,j - 2);k < j;k++) {
if(a[k].aft > 0) a[k].score += g[i],a[k].aft--;
}
}
int main(){
int cnt = 1,cnt2 = 0;//cnt2每轮滚球可能有两次,cnt滚球次数
while(cin >> c) {
if(c == '/') {
if(cnt2 == 1) {
g[cnt] = 10 - g[cnt-1];
cnt2 = 0;
}else {
g[cnt] = 10;
}
}else {
if(cnt2 == 0) {
cnt2++;
g[cnt] = c - '0';
}else {
g[cnt] = c - '0';
cnt2 = 0;
}
}
cnt++;
}
cnt--;
//for(int i = 1;i <= cnt;i++) cout << g[i] <<" ";
//cout <<"\n";
int j = 1,i = 1;//记录轮次
while(j <= 12 && i <= cnt) {
if(g[i] == 10) a[j].score = g[i],a[j].aft = 2,addaft(j,i),i++,j++;
if(g[i] < 10) {
if(i < cnt) {
a[j].score = g[i] + g[i+1];
if(a[j].score < 10) a[j].aft = 0;
else a[j].aft = 1;
addaft(j,i);
addaft(j,i+1);
i += 2;
j++;}else {
a[j].score = g[i],a[j].aft = 2,addaft(j,i),i++;
}
}
}
while(a[j].score == 0) j--;
for(int k = 1;k <= j;k++) {
if(a[k].aft == 0) {
cout << a[k].score <<" ";
sum[k] += sum[k-1] + a[k].score;
}
}
cout <<"\n";
for(int k = 1;k <= j;k++) if(a[k].aft == 0) cout << sum[k] << " ";
return 0;
}
```
by mooktian @ 2024-03-06 23:39:18
虽然AC了,懵圈中,不知道错在哪里。
```
#include <bits/stdc++.h>
#define f(i,a,b) for(int i=a;i<=b;i++)
#define g(i,a,b) for(int i=a;i>=b;i--)
#define ll long long
using namespace std;
string s[20];
struct lunci {
int score,cnt,id;
lunci() {
score = -1,cnt = 2,id = 1;
}
}a[20];
int g[30],sum[20];
int main(){
int n = 1;
while(cin >> s[n++]);
n -= 2;
int m = 1;//滚球次数
//for(int i = 1;i <= n;i++) cout << s[i] <<" ";
//cout <<"\n" ;
for(int i = 1;i <= n;i++) {
int len = s[i].size();
if(len == 0) break;//未读入数据
if(len == 1) {
if(s[i][0] == '/') {
a[i].score = 10;
g[m] = 10;
a[i].id = m;
m++;
}else a[i].score = s[i][0] - '0',a[i].id = m,g[m] = s[i][0] - '0',m++;//只投了一次,没有结束,本轮没有结果
}
if(len == 2) {
if(s[i][1] == '/') {
a[i].score = 10;
a[i].cnt = 1;
g[m] = s[i][0] - '0',m++;
g[m] = 10 - g[m-1],m++;
a[i].id = m - 1;
}else {
a[i].score = s[i][0] - '0' + s[i][1] - '0';
a[i].cnt = 0;
g[m] = s[i][0] - '0',m++;
g[m] = s[i][1] - '0',m++;
}
}
}
m--;
//cout <<m << endl;
//for(int i = 1;i <= n;i++) cout << a[i].score <<" ";
//cout <<"\n";
for(int i = 1;i <= n;i++) {
while(a[i].cnt > 0) {
if(a[i].id < m) {
a[i].score += g[a[i].id+1];
a[i].id++,a[i].cnt--;
}else break;
}
}
for(int i = 1;i <= n;i++) {
if(a[i].cnt == 0) {
cout << a[i].score <<" ";
sum[i] = sum[i-1] + a[i].score;
}
}
cout <<"\n";
for(int i = 1;i <= m;i++) {
if(a[i].cnt == 0) cout <<sum[i]<<" ";
}
return 0;
}
```
by mooktian @ 2024-03-08 18:55:55