6lszxz @ 2021-12-21 09:51:25
#include "iostream"
#include "cmath"
#include "string"
using namespace std;
string word;
int password[40010];
int main(){
char input;
int sum=0;
string line1;
while(true){
input=getchar();
if(input!='\n'){
line1+=input;
}
else{
break;
}
}
word+=line1;
int num = int(line1.length());
for(int i=0;i<num*num-num;i++){
input = getchar();
if(input!='\n'){
word+=input;
}
else{
i--;
}
}
int j=1;
for(int i=0;i<word.length();i++){
if((i>0&&word[i]!=word[i-1]) || (i==0&&word[0]=='1')){
j++;
}
password[j]++;
}
cout<<int(sqrt(word.length()*1.0)+0.5)<<' ';
for(int i=1;i<=j;i++){
cout<<password[i]<<' ';
}
return 0;
}
by 编码落寞 @ 2021-12-21 10:33:07
@6lszxz 读入数据最后不要用getchar
by 编码落寞 @ 2021-12-21 10:35:40
@6lszxz 这是在你代码之上改的,不知道是否正确
#include "iostream"
#include "cmath"
#include "string"
using namespace std;
string word;
int password[40010];
int main(){
char input;
int sum=0;
string line1;
while(true){
input=getchar();
if(input!='\n' && input!='\r'){
line1+=input;
}
else{
break;
}
}
word+=line1;
int num = int(line1.length()-1);
for(int i=0;i<num*num-num+1;i++){
input = getchar();
if(input!='\n'&& input!='\r'){
word+=input;
}
else{
if(i==num*num-num)
break;
i=i-2;
}
}
int j=1;
for(int i=0;i<word.length();i++){
if((i>0&&word[i]!=word[i-1]) || (i==0&&word[0]=='1')){
j++;
}
password[j]++;
}
cout<<int(sqrt(word.length()*1.0)+0.5)<<' ';
for(int i=1;i<=j;i++){
cout<<password[i]<<' ';
}
return 0;
}
by 6lszxz @ 2021-12-21 14:43:43
@编码落寞 不太行哎,样例都没有过QAQ
by 编码落寞 @ 2021-12-21 15:00:31
@6lszxz 我刚才提交了一遍,可以过啊
by 编码落寞 @ 2021-12-21 15:01:32
@6lszxz 你提交的还是你原来的那个代码吧
by 6lszxz @ 2021-12-21 15:03:11
@编码落寞 我试了确实能过但是我本地这边他答案输出的就是不对呜呜,没弄明白怎么回事
by 编码落寞 @ 2021-12-21 16:07:23
@6lszxz 测评环境不一样
洛谷测评环境为linux
你本地应该是windows吧
换行不一样