求大佬,RE,为何?C语言的!(C、C++混合)

P3955 [NOIP2017 普及组] 图书管理员

御·Dragon @ 2018-06-19 18:58:58

#include<bits/stdc++.h>
using namespace std;
int n,m,a[10010],s[10010],w[10010],b[10010],ans,h;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+1+n);
    for(int j=1;j<=m;j++){
        cin>>w[j]>>s[j];
        h=0;
        for(int o=1;o<=w[j];o++){
            h*=10;
        }
        w[j]=h;
    }
    for(int j=1;j<=m;j++){
        for(int i=1;i<=n;i++){
            if(a[i]%w[j]==s[j]){
                b[j]=1;
                cout<<s[j]<<a[i];
            }
            if(b[j]==0&&i==n){
                cout<<-1;
            }
        }
    }
    return 0;
} 

by UKE自动稽 @ 2018-06-19 19:02:33

@封禁用户名f8617dda 数组开小了


by 御·Dragon @ 2018-06-19 19:21:46

@UKE自动机 谢大佬指教!我还记得我的翻译还是您告诉我的不能机翻!本小弟对您的大恩大德感激不尽,求收下本学子!


by 御·Dragon @ 2018-06-19 19:23:36

@UKE自动机 我改成1001000还是RE

#include<bits/stdc++.h>
using namespace std;
int n,m,a[1001000],s[1001000],w[1001000],b[1001000],ans,h;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+1+n);
    for(int j=1;j<=m;j++){
        cin>>w[j]>>s[j];
        h=0;
        for(int o=1;o<=w[j];o++){
            h*=10;
        }
        w[j]=h;
    }
    for(int j=1;j<=m;j++){
        for(int i=1;i<=n;i++){
            if(a[i]%w[j]==s[j]){
                b[j]=1;
                cout<<s[j]<<a[i];
            }
            if(b[j]==0&&i==n){
                cout<<-1;
            }
        }
    }
    return 0;
} 

by a2600254 @ 2018-06-19 19:27:49

h=0;

然后

h*=10;

??? w数组全是0然后又

if(a[i]%w[j]==s[j])

不re才怪


by Teddy·Bear @ 2018-09-02 19:25:19

@封禁用户名f8617dda 您是不是数组越界,开100005足够了QAQ


|