제출 #782860

#제출 시각아이디문제언어결과실행 시간메모리
782860ymm저울 (IOI15_scales)C++17
0 / 100
1 ms212 KiB
#include "scales.h" #include <bits/stdc++.h> #define Loop(x,l,r) for (ll x = (l); x < (r); ++x) #define LoopR(x,l,r) for (ll x = (r)-1; x >= (l); --x) typedef std::pair<int,int> pii; typedef long long ll; using namespace std; void init(int T) { /* ... */ } void lstmx(int &a, int &b, int &c) { int x = getHeaviest(a, b, c); if (a == x) swap(a, c); if (b == x) swap(b, c); } void fstmn(int &a, int &b, int &c) { int x = getLightest(a, b, c); if (c == x) swap(a, c); if (b == x) swap(a, b); } void mv(int W[], int i, int j) { int x = W[i]; memmove(W+i, W+i+1, (5-i)*4); memmove(W+j+1, W+j, (5-j)*4); W[j] = x; } mt19937_64 rd(time(0)); void orderCoins() { /* ... */ int W[] = {1, 2, 3, 4, 5, 6}; shuffle(W, W+6, rd); fstmn(W[0], W[1], W[2]); lstmx(W[0], W[1], W[2]); fstmn(W[3], W[4], W[5]); lstmx(W[3], W[4], W[5]); int x = getNextLightest(W[0], W[1], W[2], W[3]); int y = getNextLightest(W[0], W[1], W[2], W[5]); if (x == W[0] && y == W[0]) { if (getLightest(W[0], W[3], W[4]) != W[0]) { swap(W[0], W[3]); swap(W[1], W[4]); swap(W[2], W[5]); } answer(W); return; } int z = getNextLightest(W[0], W[1], W[2], W[4]); int a[3] = {x, z, y}; Loop (i,0,3) { Loop (j,0,3) { if (a[i] == W[j]) { a[i] = j; break; } } } //Loop (i,0,6) // cerr << W[i] << ' '; //cerr << '\n'; //Loop (i,0,3) // cerr << a[i] << ' '; //cerr << '\n'; mv(W, 5, a[2]); mv(W, 5, a[1]); mv(W, 5, a[0]); answer(W); }

컴파일 시 표준 에러 (stderr) 메시지

scales.cpp: In function 'void init(int)':
scales.cpp:9:15: warning: unused parameter 'T' [-Wunused-parameter]
    9 | void init(int T) {
      |           ~~~~^
scales.cpp: In function 'void orderCoins()':
scales.cpp:64:12: warning: conversion from 'll' {aka 'long long int'} to 'int' may change value [-Wconversion]
   64 |     a[i] = j;
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...