結果

問題 No.2779 Don't make Pair
コンテスト
ユーザー tnakao0123
提出日時 2024-06-08 13:20:27
言語 C++17
(gcc 15.2.0 + boost 1.90.0)
コンパイル:
g++-15 -O2 -lm -std=c++17 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
AC  
実行時間 62 ms / 2,000 ms
コード長 834 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 468 ms
コンパイル使用メモリ 78,976 KB
実行使用メモリ 15,232 KB
最終ジャッジ日時 2026-07-04 21:13:46
合計ジャッジ時間 2,399 ms
ジャッジサーバーID
(参考情報)
judge2_0 / judge1_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 5
other AC * 24
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

/* -*- coding: utf-8 -*-
 *
 * 2779.cc:  No.2779 Don't make Pair - yukicoder
 */

#include<cstdio>
#include<vector>
#include<map>
#include<algorithm>
 
using namespace std;

/* constant */

const int MAX_N = 200000;

/* typedef */

typedef vector<int> vi;
typedef map<int,vi> mivi;

/* global variables */

int as[MAX_N];

/* subroutines */

/* main */

int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) scanf("%d", as + i);

  mivi avs;
  for (int i = 0; i < n; i++) avs[as[i]].push_back(i);

  int l = 0, r = n - 1;
  for (auto &[a, v]: avs) {
    if (v.size() > 2) { puts("0\n"); return 0; }
    if (v.size() == 2) {
      l = max(l, v[0]);
      r = min(r, v[1]);
    }
  }

  int k = max(0, r - l);
  printf("%d\n", k);
  for (int i = l; i < r; i++) printf("%d ", i + 1);
  putchar('\n');

  return 0;
}
0