虽然AC,但是对输出有点疑问
  • 板块P1918 保龄球
  • 楼主wwxxbb
  • 当前回复2
  • 已保存回复3
  • 发布时间2024/2/28 14:54
  • 上次更新2024/2/28 18:36:52
查看原帖
虽然AC,但是对输出有点疑问
1219662
wwxxbb楼主2024/2/28 14:54

这是之前的写法,只对了第一个点。

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int n,q,m;
struct node{
    int n,s;
}a[N];
bool cmp(node a,node b){
    return a.n<b.n;
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i].n,a[i].s=i;
    sort(a+1,a+n+1,cmp);
    cin>>q;
    while(q--){
        cin>>m;
        int l=1,r=n;
        while(l<=r){
            int mid=l+r>>1;
            if(a[mid].n<m)l=mid+1;
            else r=mid-1;
        }
        if(a[l].n!=m)puts("0");
        else cout<<a[l].s<<'\n';
    }
    return 0;
}

这是之后的写法,只把输出从puts改成了cout就全过了,为啥呢~

#include<bits/stdc++.h>
using namespace std;
const int N=100010;
int n,q,m;
struct node{
    int n,s;
}a[N];
bool cmp(node a,node b){
    return a.n<b.n;
}
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i].n,a[i].s=i;
    sort(a+1,a+n+1,cmp);
    cin>>q;
    while(q--){
        cin>>m;
        int l=1,r=n;
        while(l<=r){
            int mid=l+r>>1;
            if(a[mid].n<m)l=mid+1;
            else r=mid-1;
        }
        if(a[l].n!=m)cout<<0<<'\n';
        else cout<<a[l].s<<'\n';
    }
    return 0;
}
2024/2/28 14:54
加载中...