結果

問題 No.1307 Rotate and Accumulate
ユーザー NyaanNyaan
提出日時 2020-12-04 00:37:03
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 3,522 ms / 5,000 ms
コード長 535 bytes
コンパイル時間 1,460 ms
コンパイル使用メモリ 144,200 KB
最終ジャッジ日時 2025-01-16 15:02:06
ジャッジサーバーID
(参考情報)
judge5 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 19
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:15:8: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   15 |   scanf("%d%d", &N, &Q);
      |   ~~~~~^~~~~~~~~~~~~~~~
main.cpp:16:36: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   16 |   for (int i = 0; i < N; i++) scanf("%d", a + i);
      |                               ~~~~~^~~~~~~~~~~~~
main.cpp:19:10: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   19 |     scanf("%d", &i);
      |     ~~~~~^~~~~~~~~~

ソースコード

diff #

/**
 *  date : 2020-12-04 00:36:54
 */

#define NDEBUG
#include <immintrin.h>
#pragma GCC optimize("O3")
#pragma GCC target("avx2")

#include <cstdio>

int a[100000], b[200000];
int main() {
  int N, Q;
  scanf("%d%d", &N, &Q);
  for (int i = 0; i < N; i++) scanf("%d", a + i);
  while (Q--) {
    int i;
    scanf("%d", &i);
    if (i != 0) i = N - i;
    for (int j = 0; j < N; j++) b[i + j] += a[j];
  }
  for (int i = N, j = 0; j < N; i++, j++) {
    if (j) printf(" ");
    printf("%d", b[j] += b[i]);
  }
  printf("\n");
}
0