UVa 133 The Dole Queue
14480 단어 Queue
N 명을 시계 반대 방향으로 둘러싸다.
관원이 두 명 있다
한 사람이 시계 반대 방향에서 k개를 세다
다른 하나는 n에서 m 개로.
#을 동시에 진행하고 세어진 열을 낸다.(한 번에 하나 또는 두 개 나열)
다 셀 때까지.
코드는 다음과 같습니다.
#include<iostream>
#include<cstdio>
using namespace std;
int main () {
int n, k, m;//n,k m
while (scanf("%d%d%d", &n, &k, &m) == 3 && (n || k || m)) {
int num[20] = {0};
for (int i = 0; i != n; ++i) {
num[i] = i + 1;
}
int pop(0);
int idx1(0), idx2(n - 1);
while (pop != n) {
if (pop) printf(",");
for (int i = idx1, cnt = 0; cnt != k; ++i) {
if (num[i]) {
if (++cnt == k) idx1 = i;
}
if (i == n - 1) i = -1;
}
for (int i = idx2, cnt = 0; cnt != m; --i) {
if (num[i]) {
if (++cnt == m) idx2 = i;
}
if (!i) i = n;
}
if (idx1 == idx2) {
++pop;
printf("%3d", num[idx1]);
num[idx1] = 0;
}else {
pop += 2;
printf("%3d%3d", num[idx1], num[idx2]);
num[idx1] = 0;
num[idx2] = 0;
}
}
printf("
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
leetcode || 116、Populating Next Right Pointers in Each Nodeproblem: Given a binary tree Populate each next pointer to point to its next right node. If there is no next right node,...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.