baekjoon 1193


https://www.acmicpc.net/problem/1193



あ、そうです.入出力が多すぎます.

Idea


まず問題にパターンを見つけなければなりません.

に板金をはる
単純モードは次のとおりです.
上の図を2次元配列と思わないで、それをずっと1次元配列に並べます.
[1/1] , [1/2] , [2/1] , [3/1] , [2/2] , [1/3] , [1/4], [2/3] ...
こうなります.よく見るとルールが見つかります.

矢印は下分子に増加し,分母は減少し,上分子は減少し,分母は増加した.
この矢印に番号を付けます

すなわち,偶数矢印は分子増加,分母減少,奇数矢印は分子減少,分母増加を示す.
変数iは、数番目の対角線であり、奇数、奇数を判別する.
変数xは、xのスコアを出力するための変数である.
変数countは、iの2番目の矢印の次元数で最も高い数です.
このように変数を捉え、偶数の矢印の中で2つを捉え、奇数の矢印の中で2つを捉えて演算すると、問題は解決します…!

Code

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main(void) {
	int x, i;
	int count = 1;
	
	scanf("%d", &x);

	for (i = 1; x > count; ) {
		count += ++i;
	}
	
	if (i % 2 == 0) {
		printf("%d/%d", i - (count - x), 1 + (count - x));
	}
	else {
		printf("%d/%d", 1 + (count - x), x - (count - i));
	}
}

大神を踊る