为哈子不对啊

题目描述

有一个长为n的数列,共有m次操作。每次操作会翻转一个区间l到r。问最终序列?

输入格式:

第一行一个整数n,表示序列中的元素个数。
第二行n个整数,表示原序列。
第三行一个整数m,表示翻转次数。
接下来m行每行两个整数l,r。

输出格式:

一行n个整数,表示最终序列。

样例输入:

3
1 2 3
1
1 2

样例输出:

2 1 3

约定:

所有数不超过1000

我的0分代码:

#include<bits/stdc++.h>
#include<cmath>
using namespace std;
int main() {
    int a;
    cin>>a;
    int b[a];
    for(int c=1; c<=a; c++) {
        cin>>b[c];
    }
    int d;
    cin>>d;
    for(int e=1; e<=d; e++) {
        int f,g,h;
        cin>>f>>g;
        int x,l;
        if(f<g) {
            x=f;
            l=g;
        } else {
            x=g;
            l=f;
        }
        while(abs(x-l)>1) {
            swap(b[x],b[l]);
            x++;
            l--;
        }
    }
    for(int h=1; h<=a; h++) {
        cout<<b[h]<<" ";
    }
    return 0;
}

你的数组貌似越界了吧

1 个赞

haolewoACle

@韩翊

  • 你的数组越界了

  • 数组定义在全局,大小为1005

  • 定义变量尽量不要这要随意,别人看不懂,即使就定义这个名字也写一下注释

  • 头文件用万能头:include<bits/stdc++.h>

  • 我帮你把代码变量名改了一下
    一下是加了注释的你的代码(非AC代码):

#include<bits/stdc++.h>
#include<cmath>
using namespace std;
int b[1005];
int main() {
	int a;//a就是n
	cin >> a;
	for (int c = 1; c <= a; c++) {
		cin >> b[c];
	}
	int d;//d就是m
	cin >> d;
	for (int e = 1; e <= d; e++) {
		int f, g, h;//f是l,g是r
		cin >> f >> g;
		int x, l;
		if (f < g) {
			x = f;
			l = g;
		} else {
			x = g;
			l = f;
		}
		while (abs(x - l) > 1) {
			swap(b[x], b[l]);
			x++;
			l--;
		}
	}
	for (int h = 1; h <= a; h++) {
		cout << b[h] << " ";
	}
	return 0;
}

这样方便看

回老贴,而且人家已经AC了,你还用AI解答

1 个赞

请问我哪里用AI了,他AC了又不会告诉我,我怎么知道他AC没有

。你不看的吗?

1 个赞

@俞天行 请问我哪里用AI了?
你是说这个吗?:

  • 列表条目

  • 列表条目
    这个就是我平时回帖子的习惯,你也不能乱说!!!
    我先举报了!

?你没用就没用嘛,我说你一定用了吗?动不动就举报人?没用就没用呗,我说啥了我请问呢?

1 个赞

你说了,本来我就是没用AI

image

你说了呀

我也没有举报很多次呀!

1小时回帖超过5次

有问题吗?

只是可能而已,说你一定用了?哪只眼睛看见的?没用就没用,反应那么大?而且回老贴了你还不承认?那照你这么说只要说自己没用AI就没用是吧?。虽然你可能没用,但是你举报人干什么?

1 个赞

@俞天行 算了,不和你这种人吵架了,纯属浪费时间

哎呦,怎么想拿解决方案的人还跟ytx吵架了~

这是对于常规的规定哦(被某嘉乐的举报搞怕了)

@俞天行 这种人纯唐诗,不用管他,@王钰宸涵 已经要来线下单杀他了,关帖 @稻叶昙

回帖前先看时间