code forces Jeff and Periods
11074 단어 code
/*
* c.cpp
*
* Created on: 2013-10-7
* Author: wangzhu
*/
#include<cstdio>
#include<iostream>
using namespace std;
#define NMAX 100010
struct Node {
//index: (-1: ,0: :> 0:
//val:
//flag: (0: ,1: )
int index, val, flag;
} node[NMAX];
int main() {
freopen("data.in", "r", stdin);
int n,val,k;
while(~scanf("%d",&n)) {
for(int i = 0;i < NMAX;i++) {
node[i].index = -1;
node[i].val = 0;
node[i].flag = 0;
}
for(int i = 1;i <= n;i++) {
scanf("%d",&val);
if(node[val].index > 0) {
if(node[val].index != i - node[val].val) {
node[val].flag = 1;
}
} else {
if(node[val].val > 0) {
node[val].index = i - node[val].val;
} else {
node[val].index = 0;
}
}
node[val].val = i;
}
k = 0;
for(int i = 0;i < NMAX;i++) {
if(node[i].index != -1 && node[i].flag == 0) {
k++;
}
}
printf("%d
",k);
for(int i = 0;i < NMAX;i++) {
if(node[i].index != -1 && node[i].flag == 0) {
printf("%d %d
",i,node[i].index);
}
}
}
return 0;
}
시간 초과 방법은 다음과 같습니다.
/*
* c.cpp
*
* Created on: 2013-10-7
* Author: wangzhu
*/
#include<cstdio>
#include<iostream>
using namespace std;
#define NMAX 100010
struct Node {
int index, val;
} node[NMAX];
int main() {
freopen("data.in", "r", stdin);
int n,val,k,tempIndex;
bool flag;
Node tempNode;
while(~scanf("%d",&n)) {
for(int i = 0;i < n;i++) {
scanf("%d",&val);
node[i].index = i;
node[i].val = val;
}
for(int i = 0;i < n;i++) {
for(int j = 0;j < n - i -1;j++) {
if(node[j].val > node[j + 1].val) {
tempNode = node[j];
node[j] = node[j+1];
node[j+1] = tempNode;
}
}
}
k = 0;
flag = true;
for(int i = 0;i < n;) {
tempNode = node[i];
tempIndex = 0;
flag = true;
while(i < n && tempNode.val == node[i].val) {
if(tempIndex == 0) {
tempIndex = node[i].index - tempNode.index;
} else {
if(tempIndex != node[i].index -tempNode.index) {
flag = false;
}
}
tempNode = node[i];
i++;
}
if(flag) {
node[k].val = tempNode.val;
node[k].index = tempIndex;
k++;
}
}
printf("%d
",k);
for(int i = 0;i <k;i++) {
printf("%d %d
",node[i].val,node[i].index);
}
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Visual Studio 코드에 무료 Cursive(Italic) 글꼴 추가우리 모두는 기능과 확장성 때문에 Visual Studio 코드 편집기를 좋아합니다. 이 기사에서는 필기체(이탤릭체) 글꼴을 완전 무료로 설정하는 방법에 대한 유용한 팁을 보여드리겠습니다. 그 때문에 사람들은 Ope...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.