제출 #782860

#제출 시각아이디문제언어결과실행 시간메모리
782860ymmScales (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...