提出 #29888817


ソースコード 拡げる

#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
bool s[100001];
int a[100001], ans[1000001];
struct Note
{
	int l, r, block_l, id;
}b[1000001];
int main()
{
	int n;
	scanf("%d", &n);
	for (int i = 1; i <= n; ++i)scanf("%d", &a[i]);
	int block_siz = sqrt(n), q;
	scanf("%d", &q);
	for (int i = 1; i <= q; ++i)
	{
		scanf("%d%d", &b[i].l, &b[i].r);
		b[i].block_l = (b[i].l - 1) / block_siz + 1;
		b[i].id = i;
	}
	sort(b + 1, b + (q + 1), [](const Note& a, const Note& b) {
		if (a.block_l != b.block_l)
		{
			return a.block_l < b.block_l;
		}
		if (a.block_l % 2)
		{
			return a.r < b.r;
		}
		return a.r > b.r;
		});
	int x = 0;
	for (int i = b[1].l; i <= b[1].r; ++i)
	{
		x += s[a[i]];
		s[a[i]] ^= 1;
	}
	ans[b[1].id] = x;
	for (int i = 2, l = b[1].l, r = b[1].r; i <= q; ++i)
	{
		for (; l > b[i].l; x += s[a[--l]], s[a[l]] ^= 1);
		for (; r < b[i].r; x += s[a[++r]], s[a[r]] ^= 1);
		for (; l < b[i].l; x -= !s[a[l]], s[a[l++]] ^= 1);
		for (; r > b[i].r; x -= !s[a[r]], s[a[r--]] ^= 1);
		ans[b[i].id] = x;
	}
	for (int i = 1; i <= q; ++i)
	{
		printf("%d\n", ans[i]);
	}
	return 0;
}

提出情報

提出日時
問題 G - Range Pairing Query
ユーザ LXl491214
言語 C++ (GCC 9.2.1)
得点 600
コード長 1173 Byte
結果 AC
実行時間 553 ms
メモリ 26092 KiB

コンパイルエラー

./Main.cpp: In function ‘int main()’:
./Main.cpp:14:7: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   14 |  scanf("%d", &n);
      |  ~~~~~^~~~~~~~~~
./Main.cpp:15:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   15 |  for (int i = 1; i <= n; ++i)scanf("%d", &a[i]);
      |                              ~~~~~^~~~~~~~~~~~~
./Main.cpp:17:7: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   17 |  scanf("%d", &q);
      |  ~~~~~^~~~~~~~~~
./Main.cpp:20:8: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   20 |   scanf("%d%d", &b[i].l, &b[i].r);
      |   ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 600 / 600
結果
AC × 1
AC × 30
セット名 テストケース
Sample sample_01.txt
All pair_01.txt, pair_02.txt, pair_03.txt, pair_04.txt, sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt
ケース名 結果 実行時間 メモリ
pair_01.txt AC 447 ms 25552 KiB
pair_02.txt AC 447 ms 25560 KiB
pair_03.txt AC 440 ms 25516 KiB
pair_04.txt AC 440 ms 25476 KiB
sample_01.txt AC 5 ms 2112 KiB
test_01.txt AC 1 ms 2048 KiB
test_02.txt AC 231 ms 14540 KiB
test_03.txt AC 316 ms 18728 KiB
test_04.txt AC 64 ms 4508 KiB
test_05.txt AC 258 ms 15012 KiB
test_06.txt AC 93 ms 6092 KiB
test_07.txt AC 33 ms 3004 KiB
test_08.txt AC 100 ms 8180 KiB
test_09.txt AC 31 ms 2784 KiB
test_10.txt AC 384 ms 23884 KiB
test_11.txt AC 544 ms 25936 KiB
test_12.txt AC 437 ms 26092 KiB
test_13.txt AC 438 ms 26044 KiB
test_14.txt AC 440 ms 25820 KiB
test_15.txt AC 444 ms 25464 KiB
test_16.txt AC 467 ms 25944 KiB
test_17.txt AC 452 ms 26040 KiB
test_18.txt AC 442 ms 25984 KiB
test_19.txt AC 455 ms 25988 KiB
test_20.txt AC 447 ms 25352 KiB
test_21.txt AC 553 ms 25992 KiB
test_22.txt AC 450 ms 26076 KiB
test_23.txt AC 442 ms 25980 KiB
test_24.txt AC 441 ms 26044 KiB
test_25.txt AC 418 ms 22312 KiB