## 132 - Bumpy Objects

Moderator: Board moderators

Maarten
Experienced poster
Posts: 108
Joined: Sat Sep 27, 2003 5:24 pm
Hmm... I corrected the mistake but still WA... It's time to post my code here, I hope anyone can spot the mistake here, i really don't know it anymore.
For your reference: My algorithm is: read in points, calculate convex hull, and then scan through the convex hull to check if the center of mass is right above the base line, between its endpoints.

[cpp]#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define MAX_POINTS 1000

typedef struct {
int x, y;
int num;
} point;

class polygon {
public:
bool disabled;

point *vertices;
int n;

public:
polygon() {
vertices = new point[MAX_POINTS];
n = 0;
disabled = false;
}

void add( point v ) {
vertices[n++] = v;
}

int size() {
return n;
}

void print() {
for( int i=0; i<n; i++ )
printf( "%d ", vertices.num );
printf( "\n" );
}
};

/* Graham Scan */
point base;

int turn( point p, point q, point r ) {
return p.x*(r.y-q.y) + q.x*(p.y-r.y) + r.x*(q.y-p.y);
}

int radialcompare( const void *a, const void *b ) {
// (base, a, b) left turn => a < b
point p1 = base;
point p2 = *(point *)a;
point p3 = *(point *)b;
return turn(p1, p2, p3);
}

void convexHull( polygon *p, point points[], int n ) {
// find base point
int b = 0;
for( int i=0; i<n; i++ )
if( points.y < points.y ) b = i;

// sort all but base point
base = points;
points = points[0];
points[0] = base;
qsort( points+1, n-1, sizeof(point), radialcompare );

// scan phase
points[n] = base;
int *temp = new int[n+1];
temp[0] = 0;
temp[1] = 1;
int count = 2;
for( int cur=2; cur<=n; ) {
if( turn( points[temp[count-2]], points[temp[count-1]], points[cur] ) <= 0 )
temp[count++] = cur++;
else
count--;
}

// construct convex hull
for( int i=0; i<count; i++ )
}

point points[MAX_POINTS];

int main(int argc, char *argv[])
{
char name[32];
point cm;

while( scanf( "%s\n", name ) == 1 && strcmp( name, "#" ) ) {
polygon p;
int count = 0;
scanf( "%d %d\n", &cm.x, &cm.y );
while( scanf( "%d %d", &points[count].x, &points[count].y ) == 2 && (points[count].x != 0 || points[count].y != 0) ) {
points[count].num = count+1;
count++;
}
convexHull( &p, points, count );
int min = MAX_POINTS+1;
for( int i=0; i<p.size()-1; i++ ) {
point p1 = p.vertices;
point p2 = p.vertices[i+1];
int vw = (cm.x-p1.x)*(p2.x-p1.x) + (cm.y-p1.y)*(p2.y-p1.y);
int ww = (p2.x-p1.x)*(p2.x-p1.x) + (p2.y-p1.y)*(p2.y-p1.y);
if( 0 < vw && vw < ww ) {
int max = p1.num;
for( int j=0; j<count; j++ )
if( turn(p1, points[j], p2) == 0 && points[j].num > max ) max = points[j].num;

if( max<min ) min = max;
}
}
for( int pos=strlen(name); pos<20; pos++ ) name[pos] = ' ';
name[20] = 0;
printf( "%s%d\n", name, min );
}
return 0;
}
[/cpp]

Maniac
Experienced poster
Posts: 105
Joined: Tue Oct 14, 2003 3:24 pm
Location: Utrecht, Holland
I'm having kind of the same problem. I've tried a lot of test data to get this problem solved and in all cases my programs outputs the right answer, but I keep getting a WA

Here are a lot of test cases and the results of my program.

Input:

Code: Select all

``````MNTPYKX
47 23
1 26 5 13 7 28 9 13 12 11 15 2 19 17 22 6 26 29 27 27 32 29 36 2 41 25 43 23 46 8 47 22 52 23 57 29 58 18 63 9 68 16 72 9 76 16 80 23 83 4 84 28 85 29 88 13 90 21 93 4 96 16 100 26 100 46 96 31 93 29 90 36 88 38 85 43 84 32 83 35 80 53 76 28 72 36 68 36 63 38 58 30 57 60 52 39 47 45 46 17 43 37 41 28 36 7 32 43 27 45 26 31 22 16 19 36 15 32 12 18 9 32 7 32 5 19 0 0
KFSLKGIETLBPOARAX
74 10
1 15 6 9 7 5 11 19 12 25 17 7 19 9 23 30 24 27 29 14 33 30 38 14 41 30 46 19 47 10 51 6 56 15 59 28 61 1 63 9 65 19 67 13 72 14 74 9 76 27 81 24 84 6 88 8 90 11 90 13 88 17 84 22 81 50 76 33 74 34 72 33 67 17 65 34 63 38 61 17 59 36 56 22 51 27 47 28 46 34 41 47 38 38 33 37 29 25 24 43 23 49 19 22 17 12 12 37 11 26 7 35 6 19 0 0
WCIOO
39 7
1 44 5 9 9 27 11 22 14 27 17 6 22 1 27 28 29 10 31 6 34 11 39 6 41 12 45 18 49 21 54 3 58 12 60 24 64 7 65 18 65 25 64 20 60 29 58 14 54 22 49 27 45 42 41 14 39 16 34 36 31 26 29 25 27 48 22 10 17 10 14 54 11 45 9 47 5 11 0 0
KJJWIHHAJCXHLT
27 20
1 17 2 24 5 11 9 16 13 15 16 18 20 24 25 23 27 19 32 19 37 15 42 9 46 3 49 1 54 22 56 17 60 19 62 19 63 28 64 13 69 18 70 13 70 18 69 24 64 25 63 32 62 31 60 21 56 42 54 37 49 27 46 28 42 23 37 40 32 43 27 26 25 41 20 26 16 46 13 25 9 46 5 18 2 29 0 0
KCGKOGBFOZFUTKWZB
27 3
1 44 6 8 8 19 12 8 17 9 22 2 24 12 27 2 28 30 29 13 34 2 35 11 38 1 41 11 41 27 38 27 35 20 34 19 29 35 28 58 27 4 24 32 22 9 17 16 12 16 8 37 6 37 0 0
TZIUTPEPHBQJEWPB
14 11
1 8 4 13 6 5 7 22 9 14 14 10 16 9 20 19 21 3 24 11 26 24 31 24 36 20 39 23 44 30 45 17 47 15 48 24 48 35 47 36 45 42 44 50 39 51 36 41 31 37 26 50 24 36 21 5 20 46 16 17 14 40 9 30 7 42 6 7 4 22 0 0
UZJWU
9 15
1 7 6 2 9 14 13 17 18 9 23 29 24 5 25 12 28 7 32 18 37 17 41 27 46 3 49 29 53 29 54 10 58 29 63 25 63 56 58 43 54 25 53 34 49 51 46 23 41 50 37 38 32 26 28 30 25 42 24 24 23 34 18 35 13 46 9 43 6 14 0 0
PXJQGRXIMTYG
11 27
1 5 3 25 5 10 9 17 11 26 13 17 18 13 23 17 28 26 31 11 33 18 38 4 40 27 41 5 43 7 43 36 41 20 40 50 38 23 33 35 31 38 28 48 23 30 18 37 13 45 11 31 9 37 5 24 3 56 0 0
NTVNODN
17 10
1 2 6 17 8 23 11 10 16 22 17 9 21 26 26 9 27 17 27 37 26 22 21 47 17 21 16 49 11 27 8 35 6 23 0 0
OYMENJZ
24 8
1 45 6 19 7 12 8 27 12 5 15 25 19 30 20 1 24 7 28 13 30 7 34 18 37 24 41 25 42 21 46 27 46 34 42 41 41 49 37 41 34 48 30 38 28 25 24 20 20 11 19 58 15 50 12 17 8 39 7 43 6 30 0 0
VOPAFDKZDGMOYDBTMD
101 28
1 48 3 21 7 4 9 30 14 17 15 15 20 18 24 8 25 25 26 5 28 22 29 29 34 12 38 12 41 20 42 28 43 20 45 3 47 24 52 19 56 13 59 21 63 11 68 17 72 21 77 12 78 10 83 18 86 17 90 5 95 1 99 28 101 27 106 6 107 29 112 9 117 25 119 24 120 2 124 1 124 14 120 31 119 45 117 47 112 25 107 36 106 14 101 37 99 54 95 15 90 35 86 27 83 38 78 34 77 17 72 48 68 47 63 31 59 39 56 41 52 22 47 35 45 30 43 26 42 43 41 25 38 30 34 42 29 32 28 35 26 34 25 55 24 20 20 30 15 36 14 33 9 40 7 25 3 27 0 0
HVCFFFLGUGEZYJR
18 21
1 10 2 21 6 15 10 26 11 2 13 16 18 20 22 2 27 25 31 27 32 15 34 2 37 3 40 16 42 8 46 26 49 2 53 3 58 29 62 29 67 27 69 23 73 24 73 31 69 25 67 42 62 36 58 37 53 16 49 18 46 56 42 28 40 33 37 16 34 10 32 18 31 41 27 31 22 24 18 23 13 23 11 10 10 44 6 34 2 46 0 0
JBZTRHMIWJUD
10 6
1 15 2 2 6 16 10 5 12 27 16 16 20 9 25 1 28 30 28 61 25 27 20 40 16 32 12 29 10 28 6 40 2 23 0 0
TWTBSLRTFHIVM
58 12
1 26 6 5 9 19 10 8 14 19 15 15 20 15 22 23 24 30 29 7 31 1 34 12 38 15 43 19 48 19 53 11 58 11 63 22 68 17 71 7 72 4 77 26 82 29 82 36 77 31 72 19 71 17 68 25 63 52 58 14 53 24 48 40 43 24 38 21 34 27 31 25 29 31 24 60 22 42 20 21 15 46 14 37 10 36 9 47 6 23 0 0
CFSTGH
7 6
1 50 5 23 7 5 10 28 14 12 14 24 10 55 7 22 5 42 0 0
PEAAIBUMFDWWLNJEVGS
62 15
1 35 4 24 7 3 12 2 16 18 19 6 22 17 24 3 25 22 30 19 32 9 35 8 38 17 40 22 42 1 46 20 51 27 55 25 59 11 60 19 62 14 64 16 68 14 71 10 73 17 78 2 83 23 86 26 90 11 91 4 94 25 96 25 101 23 103 16 108 24 113 16 114 4 116 25 116 29 114 19 113 37 108 39 103 32 101 33 96 35 94 34 91 33 90 39 86 29 83 38 78 19 73 24 71 20 68 42 64 44 62 30 60 25 59 37 55 43 51 40 46 29 42 16 40 24 38 44 35 24 32 22 30 41 25 39 24 27 22 38 19 24 16 42 12 12 7 32 4 39 0 0
WYRNCMDFILP
88 21
1 17 6 21 10 2 11 1 12 8 13 10 16 15 17 19 21 18 25 4 27 20 28 30 30 30 35 17 39 7 41 6 43 17 45 8 46 10 48 28 53 22 58 26 60 9 62 16 67 18 70 18 75 19 79 14 81 3 82 26 84 2 88 20 93 6 95 2 98 23 100 4 102 1 106 21 109 17 114 18 114 41 109 37 106 43 102 23 100 27 98 48 95 25 93 23 88 48 84 11 82 42 81 7 79 34 75 42 70 26 67 43 62 37 60 11 58 30 53 48 48 39 46 35 45 25 43 27 41 22 39 18 35 46 30 57 28 55 27 30 25 7 21 41 17 26 16 43 13 16 12 12 11 7 10 26 6 43 0 0
YJHWNPCLQKVUQJ
6 9
1 42 5 21 6 8 7 29 9 14 10 15 13 2 18 14 18 41 13 18 10 46 9 29 7 45 6 27 5 34 0 0
MDJFYCCBNSE
32 30
1 27 3 2 8 28 13 26 17 22 22 10 24 7 27 5 32 29 35 9 38 9 39 22 41 2 45 21 47 14 51 25 56 23 59 26 62 10 66 24 70 2 75 28 79 10 80 17 83 17 88 12 91 24 95 24 95 45 91 39 88 43 83 19 80 29 79 13 75 32 70 8 66 47 62 26 59 34 56 46 51 30 47 40 45 36 41 5 39 52 38 20 35 17 32 41 27 8 24 27 22 29 17 31 13 56 8 58 3 6 0 0
DZDORDMLCGYWTY
9 31
1 10 6 18 9 30 11 15 16 30 17 10 19 5 20 22 21 30 23 12 24 26 24 34 23 27 21 42 20 40 19 30 17 14 16 53 11 37 9 38 6 28 0 0
LIEYE
18 2
1 37 4 20 8 25 12 13 15 18 18 1 23 7 24 29 25 23 27 17 31 14 34 23 34 36 31 33 27 44 25 48 24 38 23 37 18 11 15 39 12 32 8 28 4 32 0 0
IQAWIZEOBZHD
31 28
1 23 3 9 6 1 10 21 13 7 16 20 20 25 23 1 25 2 30 9 31 27 36 7 40 10 44 14 49 23 50 28 52 17 55 19 55 49 52 21 50 44 49 54 44 43 40 39 36 30 31 44 30 24 25 28 23 7 20 47 16 51 13 14 10 41 6 15 3 23 0 0
IIIIBBI
113 15
1 39 2 17 5 26 7 24 10 20 13 17 14 10 18 30 23 18 25 27 27 22 32 29 36 3 39 24 44 26 48 27 52 5 53 10 55 15 57 10 62 29 65 11 69 4 73 7 78 13 83 12 86 5 91 2 94 7 98 24 103 8 106 17 107 16 109 3 113 14 116 19 119 4 124 6 126 6 126 34 124 21 119 14 116 27 113 30 109 11 107 25 106 44 103 25 98 26 94 30 91 29 86 34 83 38 78 21 73 26 69 24 65 22 62 43 57 25 55 40 53 14 52 33 48 39 44 35 39 39 36 20 32 49 27 25 25 34 23 49 18 60 14 14 13 41 10 29 7 38 5 33 2 26 0 0
QNJPDOBUPRFUD
40 22
1 16 2 19 4 3 7 23 11 9 13 3 16 23 19 1 22 2 23 13 25 2 30 29 32 3 35 15 39 3 40 21 45 5 46 28 51 10 54 2 57 22 60 20 65 19 67 6 68 30 69 21 72 8 74 15 75 25 78 9 81 6 82 13 83 28 84 16 88 9 92 25 96 6 99 8 104 15 107 14 110 14 111 21 115 5 116 22 121 6 125 21 130 24 134 10 138 8 138 19 134 16 130 39 125 25 121 34 116 24 115 26 111 23 110 23 107 35 104 41 99 18 96 15 92 35 88 26 84 21 83 59 82 43 81 31 78 25 75 32 74 23 72 30 69 36 68 61 67 29 65 25 60 51 57 31 54 26 51 36 46 31 45 16 40 52 39 9 35 17 32 22 30 51 25 19 23 15 22 4 19 31 16 42 13 20 11 40 7 29 4 27 2 50 0 0
PBAQXVBXPTWCSTKHXB
28 28
1 24 6 13 11 30 16 2 20 23 22 29 25 12 28 27 30 19 32 29 34 19 37 18 42 27 42 53 37 36 34 25 32 50 30 22 28 57 25 31 22 32 20 30 16 32 11 35 6 28 0 0
PEFYIXMHE
23 31
1 13 4 3 9 22 12 4 16 3 18 21 19 13 20 12 23 30 24 8 25 2 28 13 30 3 33 21 34 28 38 17 40 17 45 29 48 20 53 12 58 13 63 22 68 27 69 18 73 5 77 28 78 21 81 17 85 23 90 26 95 15 99 9 100 21 101 24 104 6 105 24 109 21 110 17 113 27 113 31 110 25 109 31 105 31 104 27 101 45 100 42 99 40 95 22 90 32 85 48 81 34 78 26 77 42 73 24 69 45 68 30 63 27 58 27 53 41 48 48 45 33 40 39 38 26 34 53 33 25 30 24 28 28 25 25 24 26 23 54 20 40 19 38 18 39 16 34 12 18 9 28 4 24 0 0
BYEAT
16 25
1 30 3 10 8 16 12 29 16 24 17 1 22 22 23 2 26 27 26 31 23 30 22 47 17 17 16 30 12 52 8 19 3 27 0 0
EBHWQSHZGVCUKGM
15 2
1 6 3 19 4 26 7 9 11 24 15 1 18 21 23 16 23 25 18 34 15 21 11 40 7 39 4 40 3 22 0 0
IJSPBEGKFIU
38 11
1 12 6 22 8 29 12 22 13 18 17 6 21 20 22 13 26 8 29 6 31 11 32 2 35 26 38 10 43 29 44 5 46 4 51 30 51 35 46 28 44 9 43 58 38 25 35 48 32 21 31 14 29 8 26 10 22 17 21 29 17 21 13 49 12 39 8 54 6 27 0 0
BWWDGXTQIMGFVLCGYY
5 31
1 41 5 30 6 15 11 18 12 29 17 18 21 22 25 12 29 4 34 13 37 2 42 7 43 21 45 23 50 9 54 28 58 1 61 14 64 19 68 18 69 18 70 4 71 20 73 18 74 28 77 29 77 38 74 36 73 45 71 44 70 20 69 30 68 38 64 36 61 30 58 22 54 32 50 38 45 35 43 46 42 23 37 14 34 33 29 9 25 35 21 37 17 20 12 60 11 35 6 27 5 34 0 0
FOPPRUJEWUFD
33 28
1 18 3 17 5 18 6 20 9 19 12 10 15 4 17 14 20 17 24 20 29 18 33 27 35 21 38 23 40 7 42 16 45 12 47 18 52 6 55 18 56 26 60 18 62 29 65 16 70 18 72 29 77 20 78 18 83 5 88 28 91 12 95 28 96 8 99 3 102 21 106 2 111 7 116 7 120 8 124 7 126 30 128 5 128 36 126 37 124 11 120 23 116 20 111 28 106 8 102 42 99 21 96 12 95 41 91 40 88 37 83 34 78 26 77 28 72 34 70 47 65 46 62 47 60 44 56 43 55 21 52 25 47 37 45 39 42 40 40 23 38 33 35 37 33 57 29 41 24 41 20 46 17 18 15 28 12 24 9 25 6 23 5 39 3 41 0 0
LXMAART
2 26
1 22 2 25 5 23 10 9 14 14 16 5 17 29 22 18 23 9 27 2 28 2 32 29 33 29 38 27 43 10 45 15 49 26 53 22 56 25 60 15 61 23 62 8 67 18 68 14 71 30 72 6 74 12 76 15 81 30 82 7 83 22 88 28 91 2 96 6 96 20 91 5 88 39 83 45 82 38 81 55 76 32 74 22 72 18 71 33 68 23 67 48 62 29 61 37 60 43 56 36 53 28 49 56 45 18 43 35 38 57 33 37 32 57 28 28 27 4 23 39 22 27 17 47 16 29 14 16 10 40 5 42 2 40 0 0
ZSGYVHWINNZOD
14 24
1 8 6 5 11 14 14 23 19 9 24 15 26 15 28 20 31 11 32 2 36 1 38 21 42 22 44 7 44 27 42 36 38 37 36 18 32 13 31 36 28 48 26 35 24 39 19 14 14 52 11 19 6 32 0 0
VREGWOYOTMK
26 22
1 2 3 29 4 12 9 17 11 8 12 25 13 16 16 18 21 30 24 10 26 21 29 3 32 21 36 18 37 25 38 12 39 25 41 13 43 30 46 23 47 23 51 17 56 10 61 8 65 13 65 34 61 21 56 20 51 45 47 30 46 48 43 53 41 32 39 32 38 17 37 40 36 25 32 38 29 12 26 32 24 39 21 52 16 32 13 46 12 43 11 19 9 39 4 37 3 44 0 0
BILHPVJWJUJVWRF
4 20
1 1 2 13 3 14 4 19 8 20 10 17 12 4 17 21 22 27 24 1 24 5 22 55 17 25 12 20 10 28 8 34 4 32 3 29 2 18 0 0
AQENUXVAWUMQHSDCUG
38 16
1 25 5 21 9 3 13 11 17 20 22 20 23 17 25 29 29 13 33 25 37 26 38 15 42 2 44 7 48 5 53 17 58 6 61 3 63 17 66 4 71 12 72 26 74 25 75 23 78 21 83 18 85 4 90 16 92 26 97 22 99 26 101 5 102 27 107 23 112 10 116 1 116 22 112 18 107 54 102 55 101 23 99 31 97 49 92 41 90 32 85 19 83 39 78 32 75 43 74 40 72 31 71 28 66 21 63 45 61 7 58 19 53 35 48 25 44 32 42 27 38 31 37 37 33 31 29 16 25 31 23 40 22 51 17 26 13 23 9 23 5 28 0 0
NGUTVENAY
44 11
1 24 4 6 8 21 11 27 16 5 18 7 19 15 24 13 28 26 32 2 34 6 38 8 39 30 44 10 45 11 46 14 47 10 49 27 50 8 50 25 49 48 47 20 46 25 45 37 44 34 39 54 38 25 34 23 32 7 28 32 24 25 19 28 18 14 16 11 11 41 8 23 4 35 0 0
PHSWILXUULZFWIKD
95 15
1 28 3 2 7 11 9 8 14 5 16 7 18 27 21 18 24 23 25 18 27 20 29 6 31 24 36 28 39 3 41 13 42 12 44 12 49 17 53 26 55 21 60 7 64 1 65 23 66 5 68 22 73 19 75 12 79 27 84 26 89 7 93 14 95 14 99 25 101 2 105 15 106 18 109 20 109 32 106 41 105 43 101 30 99 38 95 24 93 16 89 32 84 56 79 40 75 37 73 25 68 27 66 11 65 26 64 29 60 27 55 31 53 37 49 25 44 18 42 31 41 24 39 15 36 57 31 55 29 8 27 49 25 47 24 38 21 22 18 30 16 31 14 18 9 36 7 31 3 31 0 0
FUFSUIAUKUWIIRPID
38 23
1 18 4 19 9 28 14 29 17 28 20 16 23 17 26 15 31 22 36 4 38 22 39 6 41 25 45 7 49 19 51 14 51 35 49 33 45 9 41 49 39 10 38 32 36 13 31 48 26 38 23 22 20 38 17 56 14 60 9 45 4 47 0 0
RBWAULRHSKXBIWZK
2 30
1 29 2 29 6 7 7 5 8 29 10 2 13 23 15 24 19 17 20 10 24 11 26 22 29 8 30 29 30 46 29 27 26 29 24 23 20 22 19 23 15 52 13 27 10 21 8 57 7 31 6 33 2 39 0 0
DENRCD
21 3
1 16 2 19 6 14 10 28 12 16 14 4 17 27 18 1 21 2 26 25 30 23 32 19 35 30 36 2 38 23 38 50 36 11 35 34 32 48 30 31 26 52 21 9 18 20 17 43 14 35 12 22 10 38 6 28 2 46 0 0
UJYRSMJKXDO
3 10
1 19 3 9 4 18 5 21 8 23 12 7 16 25 20 15 24 12 29 1 32 27 37 21 41 20 42 30 44 3 48 17 48 28 44 18 42 40 41 29 37 37 32 36 29 17 24 31 20 24 16 29 12 16 8 41 5 25 4 44 3 33 0 0
VLVYEECEHETJMDNEB
27 18
1 8 3 2 8 23 13 26 18 19 22 7 23 17 24 2 27 17 32 2 37 21 40 14 45 18 46 4 50 7 53 29 56 3 60 5 61 22 64 12 68 14 71 9 76 4 81 13 82 17 86 11 90 24 92 20 94 30 95 28 100 25 104 9 108 22 111 12 114 13 118 12 123 12 123 16 118 34 114 35 111 23 108 50 104 27 100 37 95 57 94 53 92 23 90 43 86 24 82 31 81 18 76 8 71 40 68 28 64 36 61 38 60 17 56 24 53 36 50 33 46 34 45 41 40 17 37 41 32 29 27 48 24 20 23 36 22 11 18 23 13 29 8 27 3 20 0 0
YVTJTOOO
49 2
1 2 5 7 10 30 14 22 15 4 17 6 20 24 23 22 24 1 27 22 31 6 35 21 36 17 39 30 43 20 45 20 49 1 52 10 57 30 61 2 66 26 68 26 71 18 73 11 74 8 76 9 77 13 81 22 86 15 90 6 90 30 86 41 81 53 77 43 76 30 74 35 73 23 71 35 68 37 66 55 61 10 57 48 52 16 49 7 45 37 43 48 39 41 36 28 35 23 31 10 27 51 24 23 23 40 20 53 17 28 15 13 14 51 10 32 5 37 0 0
WVWIYZQVVAEKPZ
50 4
1 12 4 23 6 8 10 5 14 10 18 27 21 3 24 30 26 4 28 2 31 4 33 7 38 13 40 26 45 21 50 3 51 8 52 2 55 14 58 18 60 4 60 15 58 45 55 23 52 31 51 36 50 12 45 35 40 49 38 25 33 31 31 20 28 15 26 29 24 61 21 21 18 39 14 12 10 8 6 20 4 50 0 0
PGZPRVRQDEKSTHVD
34 23
1 17 6 23 9 6 14 28 16 22 17 13 22 7 23 11 26 5 27 26 28 10 32 3 33 6 34 22 39 21 42 30 46 23 48 1 50 23 54 19 54 46 50 50 48 27 46 40 42 42 39 30 34 47 33 14 32 32 28 37 27 42 26 19 23 30 22 27 17 20 16 52 14 36 9 34 6 46 0 0
DTRJGZBLLFJI
21 11
1 43 3 8 5 18 6 25 10 9 13 14 15 20 18 12 21 10 22 4 24 4 27 9 31 21 34 7 38 6 43 30 47 23 52 6 56 21 59 24 62 22 67 9 71 7 76 6 77 22 78 28 83 11 88 9 90 14 94 14 99 10 101 21 103 30 106 29 110 6 114 29 116 29 121 12 126 7 127 12 129 14 134 19 139 26 140 15 144 22 149 10 149 27 144 50 140 37 139 54 134 29 129 32 127 18 126 9 121 28 116 58 114 52 110 21 106 54 103 61 101 33 99 37 94 37 90 18 88 22 83 42 78 37 77 31 76 26 71 36 67 19 62 27 59 48 56 42 52 22 47 38 43 61 38 8 34 20 31 42 27 33 24 25 22 9 21 38 18 19 15 37 13 17 10 13 6 30 5 28 3 37 0 0
ULNLEZIQ
16 13
1 12 3 25 6 6 11 23 16 12 19 10 20 12 23 5 26 6 31 10 33 18 37 21 41 15 45 12 45 24 41 24 37 48 33 32 31 40 26 27 23 11 20 29 19 20 16 22 11 25 6 9 3 30 0 0
EWZZZMQEAPWRUEW
27 25
1 4 4 10 5 6 6 19 11 10 12 9 17 28 18 1 19 6 20 8 22 19 24 14 27 24 31 16 35 5 40 19 42 16 46 24 48 22 50 17 51 14 53 28 58 12 60 7 65 5 67 26 71 17 73 17 75 17 78 21 79 2 81 20 83 20 87 12 90 18 95 10 95 29 90 20 87 37 83 27 81 37 79 15 78 35 75 42 73 23 71 25 67 53 65 8 60 14 58 43 53 56 51 32 50 47 48 38 46 53 42 22 40 47 35 26 31 31 27 33 24 31 22 32 20 32 19 29 18 17 17 45 12 15 11 27 6 25 5 33 4 24 0 0
ALQEJDNLUFGEXQKP
43 24
1 3 2 23 3 2 4 11 9 4 11 6 12 6 14 8 18 8 21 20 23 16 25 1 29 21 32 1 33 23 36 20 39 13 43 23 45 23 46 9 48 21 53 28 54 27 58 6 62 15 66 10 68 16 71 3 75 8 78 29 83 20 84 25 86 11 89 5 89 7 86 16 84 42 83 36 78 49 75 23 71 11 68 27 66 30 62 29 58 26 54 39 53 51 48 48 46 12 45 26 43 28 39 32 36 40 33 53 32 18 29 25 25 21 23 28 21 45 18 27 14 21 12 13 11 25 9 29 4 29 3 29 2 34 0 0
AKNQJBBXLYZLCKEAH
82 8
1 5 6 14 11 12 16 23 18 30 23 25 25 2 30 14 35 5 37 25 40 17 43 12 47 2 48 14 51 16 53 22 58 4 63 30 66 23 71 20 73 4 78 12 82 7 86 22 87 8 89 27 94 5 98 7 100 1 105 5 107 17 112 6 116 6 121 11 123 20 123 35 121 33 116 36 112 15 107 46 105 28 100 17 98 11 94 9 89 48 87 34 86 36 82 11 78 42 73 32 71 47 66 50 63 47 58 22 53 26 51 44 48 45 47 19 43 29 40 31 37 31 35 32 30 36 25 19 23 49 18 55 16 51 11 22 6 44 0 0
PLXDP
43 17
1 7 2 5 6 2 9 6 10 7 12 16 15 13 17 16 21 15 25 9 26 30 29 10 30 11 31 1 34 28 35 30 39 30 43 16 45 18 50 13 55 25 60 23 63 27 67 12 68 19 72 26 74 24 74 27 72 47 68 38 67 25 63 52 60 32 55 38 50 25 45 42 43 29 39 60 35 47 34 42 31 31 30 32 29 26 26 40 25 36 21 39 17 37 15 15 12 44 10 23 9 8 6 29 2 26 0 0
YLNPMEEXAC
31 23
1 20 4 1 5 23 7 27 11 18 16 25 17 18 22 25 27 19 28 28 29 11 31 22 35 12 36 26 37 28 42 20 44 7 49 24 54 18 58 14 60 26 65 13 69 15 73 22 77 27 79 30 80 5 83 2 86 17 90 21 92 24 93 23 97 24 100 22 104 2 107 7 111 12 115 17 117 23 121 4 124 21 127 6 129 26 130 6 134 3 134 24 130 25 129 43 127 15 124 24 121 19 117 35 115 22 111 26 107 25 104 23 100 25 97 51 93 35 92 30 90 34 86 38 83 22 80 10 79 46 77 50 73 27 69 41 65 23 60 32 58 34 54 34 49 28 44 35 42 36 37 47 36 34 35 15 31 41 29 14 28 39 27 36 22 48 17 39 16 32 11 36 7 33 5 29 4 8 0 0
LJKXR
10 4
1 19 3 3 6 27 10 3 15 28 18 25 22 29 27 20 29 27 31 18 32 27 37 15 38 3 39 9 42 28 46 3 51 22 54 8 55 17 60 17 65 26 66 8 68 23 69 27 70 27 72 18 75 17 78 27 82 16 86 3 91 22 96 29 97 8 99 12 103 27 106 4 108 14 113 13 116 7 120 25 121 23 124 27 128 10 130 10 134 6 134 27 130 39 128 38 124 56 121 33 120 56 116 31 113 18 108 36 106 21 103 45 99 35 97 34 96 45 91 39 86 21 82 22 78 35 75 40 72 20 70 33 69 40 68 32 66 30 65 55 60 27 55 30 54 26 51 24 46 6 42 43 39 28 38 10 37 33 32 29 31 37 29 29 27 35 22 37 18 30 15 31 10 22 6 38 3 31 0 0
DFOZNQXTTLDT
12 17
1 43 2 4 5 22 7 6 8 24 12 16 15 21 20 23 25 18 29 3 29 16 25 40 20 26 15 34 12 31 8 52 7 9 5 25 2 11 0 0
ECGSQLS
59 27
1 17 5 28 9 10 14 13 19 22 20 13 22 5 23 12 26 1 30 19 35 1 40 27 42 1 47 20 51 12 53 8 58 3 59 26 61 2 65 19 70 1 75 22 77 18 81 25 84 22 89 15 94 22 98 22 103 26 105 23 106 26 107 6 108 2 109 12 113 22 118 1 119 6 122 15 124 22 128 25 131 28 134 26 136 12 141 23 142 28 146 25 149 18 154 10 154 28 149 25 146 55 142 39 141 48 136 34 134 51 131 40 128 40 124 38 122 46 119 24 118 7 113 28 109 29 108 27 107 20 106 52 105 51 103 41 98 38 94 46 89 40 84 41 81 35 77 36 75 37 70 13 65 35 61 13 59 46 58 26 53 20 51 15 47 43 42 28 40 30 35 14 30 48 26 16 23 33 22 14 20 43 19 24 14 39 9 21 5 43 0 0
LDAPXLTPZDOZG
4 15
1 23 4 14 8 7 13 17 16 16 21 21 22 12 23 12 25 19 26 6 31 4 31 19 26 27 25 48 23 28 22 16 21 24 16 28 13 34 8 31 4 38 0 0
UBHLVQQRBDETCC
88 19
1 4 3 11 4 28 7 24 10 12 13 28 16 10 19 29 21 15 22 28 24 9 29 21 32 4 35 3 39 12 43 6 44 9 48 21 53 16 55 1 60 25 62 7 66 10 70 10 72 26 76 11 80 16 82 9 84 3 86 28 88 18 92 10 97 1 100 2 100 25 97 18 92 20 88 35 86 47 84 16 82 40 80 23 76 25 72 52 70 30 66 27 62 20 60 43 55 26 53 41 48 39 44 24 43 19 39 34 35 19 32 10 29 26 24 15 22 41 21 26 19 49 16 24 13 30 10 27 7 32 4 31 3 19 0 0
HUOKQFYUPEGSNATSZ
47 25
1 1 3 6 5 1 10 8 12 2 15 18 20 16 22 22 27 30 31 26 35 8 38 11 43 25 47 24 51 1 56 2 60 19 65 10 69 3 74 21 77 9 78 4 79 28 83 1 88 14 89 20 89 29 88 19 83 5 79 39 78 32 77 23 74 24 69 28 65 28 60 37 56 6 51 19 47 38 43 53 38 20 35 31 31 41 27 46 22 32 20 47 15 43 12 9 10 13 5 16 3 31 0 0
DZAOOLVOOETOWCAZFPX
83 27
1 46 5 18 8 28 11 14 16 10 17 17 22 28 24 13 25 19 29 22 30 25 34 20 35 12 40 14 43 4 44 18 49 7 51 14 53 25 56 30 60 22 65 1 68 13 69 1 72 20 75 7 77 5 81 10 82 21 83 26 87 14 90 21 94 27 95 20 97 5 98 18 98 30 97 30 95 30 94 52 90 42 87 28 83 48 82 36 81 31 77 31 75 16 72 32 69 12 68 43 65 8 60 46 56 58 53 36 51 32 49 29 44 20 43 19 40 35 35 29 34 41 30 46 29 34 25 42 24 44 22 45 17 24 16 15 11 19 8 45 5 32 0 0
WDUOUTSQKP
3 17
1 50 3 16 7 28 12 30 13 22 17 7 18 20 20 4 23 12 28 3 29 11 30 21 32 26 33 14 35 5 37 26 38 1 41 6 46 25 48 11 52 10 56 27 58 2 61 27 65 22 70 4 72 14 77 1 79 11 80 7 83 27 84 30 85 16 85 18 84 52 83 48 80 29 79 32 77 25 72 19 70 12 65 36 61 47 58 5 56 52 52 27 48 22 46 29 41 18 38 25 37 30 35 7 33 29 32 43 30 33 29 23 28 18 23 28 20 15 18 45 17 34 13 50 12 52 7 56 3 32 0 0
OWPOMZTRT
23 31
1 40 4 15 5 15 7 10 10 17 11 16 16 11 17 30 18 23 20 5 22 2 23 30 28 22 31 17 35 28 37 27 40 13 45 14 45 31 40 18 37 33 35 59 31 35 28 30 23 48 22 21 20 35 18 32 17 43 16 13 11 40 10 40 7 23 5 37 4 19 0 0
EZKRPOJDLMLKQHXAJ
81 15
1 23 4 17 9 19 10 21 12 22 17 24 22 3 25 21 30 15 33 10 38 18 41 8 46 3 48 10 50 27 54 2 55 12 56 6 57 22 61 20 64 3 67 9 72 27 76 3 81 14 86 10 91 22 95 10 98 7 102 19 103 8 103 22 102 27 98 33 95 33 91 45 86 15 81 17 76 9 72 58 67 35 64 8 61 27 57 26 56 34 55 21 54 5 50 49 48 40 46 27 41 10 38 41 33 41 30 33 25 32 22 15 17 40 12 53 10 34 9 43 4 21 0 0
PRLGZNTDZSRABUMJQ
67 17
1 23 3 17 6 7 11 15 13 9 15 16 17 13 22 20 23 6 26 12 28 27 32 28 36 14 40 21 45 1 49 12 52 6 56 13 59 19 63 5 67 16 71 18 75 4 78 16 81 19 84 9 88 25 93 3 97 14 100 29 102 13 105 27 109 8 111 4 112 17 114 6 115 13 120 9 125 25 130 4 134 25 138 1 138 24 134 32 130 27 125 33 120 33 115 35 114 17 112 30 111 32 109 28 105 57 102 17 100 57 97 38 93 6 88 28 84 21 81 33 78 32 75 25 71 34 67 40 63 26 59 25 56 30 52 20 49 24 45 7 40 30 36 21 32 35 28 53 26 25 23 18 22 48 17 28 15 22 13 23 11 39 6 9 3 43 0 0
SAGEBWKELDGGMGUZBIO
6 4
1 13 6 3 7 20 11 15 12 30 17 2 22 6 22 21 17 6 12 44 11 37 7 29 6 30 0 0
ZEHDESPCCGPTYE
50 16
1 30 4 10 5 21 10 26 11 20 16 30 18 11 21 30 26 5 29 6 34 8 38 17 41 10 45 5 50 15 53 7 54 25 57 5 60 18 62 26 64 25 65 4 70 21 73 15 76 17 78 16 79 10 81 2 83 3 88 22 90 17 92 1 93 4 95 13 95 16 93 32 92 25 90 34 88 30 83 21 81 33 79 15 78 22 76 31 73 19 70 37 65 20 64 48 62 50 60 38 57 24 54 46 53 11 50 46 45 33 41 34 38 23 34 32 29 31 26 9 21 55 18 14 16 47 11 24 10 50 5 38 4 28 0 0
WUTKHNJGKWZUVCLH
32 20
1 40 3 26 8 7 9 29 11 8 14 6 15 14 16 11 20 30 23 2 27 15 32 19 35 17 38 6 41 16 44 3 46 28 47 25 51 11 55 28 59 27 60 4 62 18 64 25 66 1 67 19 67 21 66 16 64 43 62 34 60 7 59 35 55 39 51 39 47 31 46 36 44 31 41 22 38 31 35 34 32 39 27 25 23 15 20 53 16 31 15 23 14 37 11 29 9 57 8 38 3 32 0 0
FOSJIA
9 31
1 33 6 21 9 30 13 28 17 26 19 23 23 3 23 13 19 31 17 39 13 31 9 35 6 39 0 0
EFWIQAP
9 25
1 39 4 18 9 24 13 6 16 30 21 13 24 5 26 16 27 23 27 49 26 46 24 26 21 26 16 40 13 19 9 31 4 40 0 0
PFZTMRPQQICJPHMAP
128 13
1 23 6 9 8 3 13 3 18 7 23 15 27 28 32 25 37 29 42 5 45 25 49 24 52 6 54 12 56 5 58 2 63 27 66 27 69 9 72 23 77 6 81 10 84 15 87 23 89 16 92 5 93 27 94 2 98 4 103 2 105 21 107 8 111 3 115 25 119 28 123 7 128 12 130 23 132 27 135 18 139 12 143 13 146 17 146 37 143 39 139 16 135 35 132 49 130 44 128 30 123 34 119 59 115 54 111 13 107 13 105 36 103 12 98 26 94 13 93 48 92 23 89 44 87 29 84 25 81 12 77 10 72 28 69 38 66 42 63 42 58 14 56 13 54 33 52 26 49 37 45 28 42 33 37 31 32 37 27 38 23 45 18 17 13 24 8 17 6 16 0 0
RIFIOY
49 11
1 25 4 8 8 9 10 29 11 21 14 5 16 25 17 11 19 25 20 26 22 11 27 3 29 11 30 16 33 28 34 5 38 15 39 24 41 22 46 13 47 8 49 10 52 18 53 28 57 8 59 15 60 28 65 13 68 16 72 25 72 52 68 29 65 24 60 31 59 38 57 39 53 45 52 34 49 21 47 16 46 18 41 45 39 33 38 36 34 25 33 49 30 44 29 21 27 32 22 22 20 42 19 48 17 38 16 49 14 25 11 39 10 51 8 14 4 28 0 0
OPCWGYXSVVUEHF
24 11
1 28 2 24 5 4 7 25 8 18 9 14 11 12 12 15 15 24 17 1 20 30 21 9 24 10 27 3 31 12 32 3 35 3 40 1 41 12 41 21 40 9 35 34 32 18 31 29 27 27 24 28 21 33 20 50 17 9 15 42 12 37 11 22 9 24 8 30 7 39 5 7 2 26 0 0
XCTZE
42 6
1 25 5 17 9 3 11 25 14 13 16 4 17 25 18 19 23 17 27 22 29 4 32 15 34 5 35 19 38 6 42 5 44 6 45 10 45 25 44 35 42 24 38 31 35 22 34 25 32 18 29 21 27 26 23 27 18 25 17 35 16 33 14 26 11 41 9 23 5 48 0 0
TZSQGG
54 25
1 16 2 27 4 2 7 8 9 12 12 28 15 9 16 24 20 8 21 13 24 26 28 17 29 18 34 10 36 6 38 8 41 21 44 13 48 18 52 15 54 24 58 6 63 22 65 29 69 2 71 24 76 24 81 11 86 29 88 13 89 5 94 9 96 27 98 11 102 13 105 11 107 19 108 12 112 1 116 19 117 24 117 49 116 30 112 5 108 42 107 45 105 15 102 36 98 13 96 52 94 24 89 34 88 36 86 46 81 20 76 41 71 46 69 27 65 35 63 45 58 19 54 42 52 31 48 34 44 26 41 24 38 19 36 21 34 28 29 27 28 40 24 43 21 32 20 34 16 35 15 38 12 42 9 19 7 17 4 11 2 55 0 0
EIKHAZT
79 22
1 46 4 15 5 30 10 15 11 28 12 1 13 17 18 24 20 24 25 19 28 23 31 2 35 5 39 5 43 9 45 16 47 16 49 22 50 28 52 24 55 4 59 16 64 27 68 12 69 2 74 28 79 21 84 28 86 4 89 17 90 10 94 29 96 15 100 16 100 31 96 42 94 58 90 24 89 23 86 30 84 40 79 46 74 39 69 28 68 36 64 58 59 31 55 27 52 36 50 45 49 41 47 19 45 38 43 11 39 36 35 14 31 10 28 29 25 44 20 49 18 42 13 19 12 32 11 44 10 34 5 52 4 26 0 0
BKTTOAYBAQF
12 25
1 33 5 11 10 24 11 16 12 24 16 5 19 26 22 9 23 8 27 12 31 13 32 18 37 22 39 25 41 29 44 28 45 4 45 33 44 59 41 34 39 32 37 27 32 45 31 21 27 40 23 35 22 21 19 39 16 29 12 42 11 39 10 28 5 20 0 0
IHPRTZLKYPEAFIWT
10 29
1 42 5 12 7 28 10 28 13 15 18 29 20 15 20 19 18 59 13 32 10 51 7 43 5 15 0 0
UICGRGYDW
10 2
1 6 4 9 7 8 10 1 15 20 17 18 18 9 21 16 22 17 24 26 27 20 29 23 32 8 36 21 37 15 38 22 43 12 45 27 47 14 50 2 53 14 54 9 55 21 57 28 58 20 62 18 66 14 68 2 73 14 75 3 77 13 79 8 84 19 88 15 89 12 92 17 96 24 98 19 101 27 101 40 98 37 96 27 92 30 89 35 88 43 84 31 79 17 77 18 75 33 73 25 68 8 66 28 62 49 58 39 57 58 55 28 54 18 53 19 50 33 47 42 45 29 43 18 38 36 37 35 36 47 32 29 29 53 27 36 24 54 22 34 21 23 18 21 17 21 15 39 10 32 7 14 4 11 0 0
MMEPGB
31 9
1 3 6 7 9 3 11 2 13 25 17 22 20 7 24 18 28 18 31 8 32 5 34 20 35 9 37 20 38 16 42 20 44 17 46 29 49 6 49 24 46 43 44 40 42 27 38 40 37 45 35 32 34 41 32 31 31 23 28 37 24 33 20 27 17 27 13 27 11 10 9 32 6 10 0 0
DQRDAUQKXOIQGNVZJWC
62 20
1 34 6 14 9 12 12 12 15 1 18 7 23 6 28 4 29 25 32 5 34 22 39 28 44 24 48 11 52 3 55 24 58 28 60 15 62 19 65 10 68 12 71 1 72 12 77 18 77 25 72 16 71 20 68 18 65 13 62 50 60 24 58 50 55 31 52 5 48 42 44 47 39 41 34 29 32 29 29 30 28 29 23 26 18 10 15 7 12 27 9 16 6 29 0 0
UUWDDMPEQCRBRYO
84 6
1 37 3 15 8 27 11 11 16 7 20 29 24 20 27 4 29 27 32 7 33 5 35 16 40 25 45 8 46 3 48 5 49 27 52 12 55 22 58 28 63 18 66 4 67 4 72 26 77 17 79 7 83 5 84 5 89 23 91 30 94 23 99 8 100 14 101 6 104 29 108 13 108 43 104 38 101 32 100 33 99 23 94 35 91 48 89 32 84 29 83 16 79 9 77 23 72 43 67 25 66 29 63 36 58 44 55 32 52 21 49 49 48 17 46 19 45 23 40 43 35 46 33 29 32 34 29 33 27 9 24 27 20 52 16 30 11 37 8 43 3 43 0 0
RTXIBIE
110 9
1 39 5 28 10 16 13 30 15 21 18 8 21 11 25 17 27 21 29 27 32 9 35 4 38 10 41 26 43 8 45 30 49 26 54 29 58 24 63 14 66 9 71 21 74 2 76 10 80 17 85 2 89 9 93 14 96 16 98 21 102 21 105 13 107 17 108 4 110 8 115 29 118 30 121 12 125 22 129 10 131 29 134 18 138 16 139 23 141 15 146 1 149 2 149 26 146 6 141 29 139 33 138 23 134 34 131 58 129 13 125 35 121 28 118 32 115 55 110 27 108 14 107 32 105 15 102 30 98 27 96 39 93 30 89 25 85 28 80 34 76 37 74 24 71 43 66 21 63 19 58 50 54 59 49 49 45 58 43 23 41 32 38 30 35 13 32 29 29 46 27 41 25 45 21 18 18 10 15 32 13 40 10 18 5 50 0 0
KOVULOMXMTLOUNY
17 17
1 36 4 23 9 30 14 13 17 16 20 21 22 21 25 9 30 21 31 4 35 3 40 16 41 7 43 15 45 5 47 7 52 17 52 22 47 24 45 36 43 34 41 11 40 18 35 29 31 11 30 37 25 30 22 31 20 23 17 34 14 35 9 50 4 41 0 0
LHCDZUXDJFTJZO
15 13
1 20 5 18 10 21 15 12 18 19 23 1 28 7 33 17 34 25 37 28 41 13 43 23 46 11 48 17 49 3 52 8 53 2 56 13 58 1 63 4 66 10 67 1 68 18 69 12 69 33 68 40 67 26 66 13 63 20 58 14 56 33 53 31 52 35 49 14 48 27 46 37 43 45 41 24 37 42 34 42 33 24 28 27 23 11 18 36 15 25 10 26 5 49 0 0
YLQYIEYEH
93 11
1 31 2 30 6 2 8 7 13 25 16 13 18 21 20 6 21 28 25 19 26 26 27 4 29 23 31 24 32 10 34 8 35 9 39 24 40 8 42 21 45 25 49 2 50 28 55 29 60 14 62 17 65 2 69 16 70 14 72 3 77 29 78 4 79 22 82 29 86 27 87 3 89 9 90 11 93 10 97 22 102 22 107 1 111 17 115 10 115 23 111 26 107 10 102 32 97 42 93 40 90 16 89 13 87 19 86 51 82 41 79 42 78 34 77 38 72 19 70 43 69 26 65 5 62 40 60 41 55 50 50 53 49 17 45 36 42 30 40 22 39 43 35 12 34 37 32 28 31 52 29 43 27 35 26 42 25 47 21 42 20 10 18 40 16 29 13 39 8 21 6 5 2 48 0 0
CCQXWRIKWB
4 8
1 23 4 7 7 15 9 5 12 9 16 18 21 3 24 10 25 27 28 9 33 30 37 30 41 9 43 26 47 9 48 12 51 16 55 18 58 27 59 29 61 10 65 12 68 5 72 25 75 27 76 1 79 30 81 14 85 29 87 15 88 16 89 15 92 12 97 12 97 19 92 29 89 39 88 23 87 28 85 57 81 39 79 60 76 21 75 52 72 52 68 23 65 20 61 39 59 40 58 41 55 48 51 29 48 17 47 33 43 28 41 13 37 56 33 55 28 18 25 31 24 24 21 8 16 40 12 21 9 10 7 26 4 14 0 0
MLCYFZFRSAHZU
3 27
1 25 3 26 6 27 9 14 10 1 13 22 14 21 18 26 19 8 21 16 24 11 26 11 31 28 34 19 36 1 39 3 40 6 45 5 48 24 49 25 50 18 53 4 54 6 57 18 58 19 58 24 57 40 54 12 53 26 50 37 49 45 48 35 45 32 40 33 39 12 36 9 34 33 31 37 26 26 24 28 21 25 19 14 18 43 14 42 13 46 10 8 9 21 6 41 3 33 0 0
VVYEQKAEDSRXZIEIVV
23 11
1 12 6 16 11 20 13 26 14 10 19 10 21 21 22 8 23 10 28 2 33 16 37 30 38 29 43 27 47 20 49 9 50 21 55 28 55 34 50 45 49 30 47 36 43 54 38 58 37 41 33 45 28 30 23 34 22 26 21 23 19 37 14 35 13 42 11 51 6 35 0 0
JTJMNYWBCCSUVWU
46 5
1 37 5 11 10 4 14 7 17 23 21 24 25 3 29 22 30 6 31 20 32 3 37 10 42 12 46 4 47 6 49 9 51 29 56 18 59 3 64 21 68 7 72 28 73 12 77 12 77 35 73 38 72 31 68 29 64 43 59 24 56 47 51 55 49 37 47 24 46 6 42 32 37 24 32 12 31 36 30 22 29 47 25 18 21 52 17 41 14 34 10 12 5 42 0 0
NJEBUWSMMUW
23 9
1 47 4 29 6 14 9 17 12 21 15 16 19 23 20 14 21 18 23 8 25 30 29 16 29 44 25 38 23 28 21 24 20 26 19 48 15 39 12 24 9 46 6 31 4 49 0 0
SJCBEXITGGMZZSSGF
117 23
1 21 2 3 5 21 7 21 11 24 12 1 15 22 19 9 21 20 25 15 29 21 33 8 35 30 40 11 44 17 48 16 50 22 53 15 54 21 58 22 62 7 65 3 67 8 69 16 72 20 75 16 78 13 80 6 84 7 89 29 92 18 96 15 98 22 103 28 106 27 108 17 112 9 117 22 118 9 122 3 122 19 118 16 117 47 112 22 108 25 106 34 103 58 98 36 96 22 92 30 89 40 84 24 80 32 78 33 75 32 72 28 69 27 67 23 65 34 62 11 58 39 54 26 53 44 50 50 48 44 44 42 40 29 35 43 33 36 29 29 25 20 21 49 19 34 15 43 12 18 11 53 7 43 5 45 2 24 0 0
RFHGESXSIYPCQJLMNR
27 30
1 10 3 17 6 10 11 6 14 12 17 17 22 14 27 29 32 8 36 19 37 28 42 6 45 17 49 17 51 14 53 14 54 4 58 15 60 12 61 1 65 23 68 24 72 26 77 5 78 25 82 14 83 5 85 14 90 11 92 18 97 23 98 6 99 6 100 30 104 4 108 26 113 5 116 6 116 36 113 33 108 53 104 23 100 54 99 26 98 29 97 44 92 31 90 28 85 35 83 28 82 17 78 41 77 25 72 52 68 33 65 31 61 14 60 37 58 21 54 34 53 32 51 27 49 39 45 34 42 32 37 44 36 34 32 31 27 38 22 40 17 30 14 15 11 11 6 26 3 34 0 0
RALOGTDSEJMVIDK
12 27
1 33 6 5 10 6 12 26 14 27 17 4 22 20 23 27 26 6 29 27 34 27 37 15 39 15 43 13 43 28 39 39 37 25 34 50 29 29 26 13 23 54 22 42 17 25 14 43 12 32 10 19 6 23 0 0
POWEGHRI
47 24
1 1 2 7 4 23 5 17 6 12 7 9 9 21 10 12 11 12 12 14 16 24 21 3 25 19 26 28 30 2 32 2 34 15 38 18 42 23 44 7 46 15 47 23 52 10 56 5 59 16 60 13 61 22 62 22 64 2 66 12 69 16 74 30 78 18 80 23 83 30 85 11 88 16 89 11 93 11 93 36 89 17 88 43 85 20 83 39 80 27 78 27 74 61 69 35 66 33 64 27 62 30 61 47 60 28 59 27 56 31 52 36 47 44 46 30 44 13 42 30 38 47 34 30 32 13 30 32 26 59 25 21 21 11 16 27 12 41 11 29 10 19 9 28 7 19 6 36 5 24 4 49 2 24 0 0
SPTBIJPKRBX
40 19
1 1 3 24 5 22 6 13 10 20 15 13 18 6 23 12 24 29 25 13 27 4 32 15 34 5 35 29 39 17 40 18 44 18 47 13 48 29 50 23 52 16 56 19 60 23 65 26 69 7 71 29 72 29 76 13 79 27 80 28 83 26 86 6 90 20 93 14 98 28 100 17 101 9 105 26 106 5 111 19 113 22 116 15 121 22 121 39 116 29 113 38 111 21 106 24 105 52 101 14 100 19 98 58 93 40 90 43 86 14 83 42 80 50 79 56 76 20 72 34 71 38 69 24 65 36 60 53 56 44 52 42 50 41 48 44 47 23 44 41 40 39 39 34 35 58 34 30 32 26 27 31 25 41 24 35 23 42 18 22 15 41 10 39 6 41 5 39 3 41 0 0
IUDWJTENUIBJYCO
4 27
1 24 4 26 8 30 13 15 15 14 15 29 13 30 8 58 4 35 0 0
ORWRWFUNFBXEJSCQ
9 9
1 41 5 11 8 16 9 8 13 28 16 20 21 19 23 7 25 30 30 13 34 4 38 24 39 6 41 3 43 27 47 1 52 24 52 40 47 13 43 53 41 23 39 19 38 30 34 29 30 36 25 36 23 21 21 36 16 38 13 44 9 34 8 47 5 21 0 0
TYONU
10 2
1 50 5 24 9 30 10 1 15 16 17 29 18 22 22 14 25 18 29 6 32 12 34 16 38 3 41 16 43 29 48 12 53 24 57 24 57 45 53 26 48 32 43 39 41 37 38 30 34 42 32 24 29 10 25 26 22 17 18 35 17 47 15 37 10 23 9 42 5 28 0 0
ILPKLMYRG
29 20
1 20 2 8 7 29 10 28 12 29 14 18 15 12 16 9 20 20 21 6 23 10 24 13 25 18 29 19 30 13 33 12 35 26 38 29 39 21 42 26 44 2 49 11 52 8 53 18 57 12 60 5 60 21 57 19 53 44 52 37 49 35 44 31 42 35 39 32 38 31 35 31 33 14 30 34 29 43 25 35 24 20 23 24 21 32 20 29 16 17 15 38 14 27 12 33 10 36 7 57 2 35 0 0
NAVZEBGZNXPPVRVVIPX
110 20
1 46 6 14 9 17 14 23 17 24 22 19 26 30 29 4 30 10 32 28 37 5 40 2 41 7 44 11 45 26 48 16 53 3 57 18 61 9 63 28 66 11 71 30 75 22 77 12 78 11 82 14 83 23 88 11 89 21 94 13 97 2 100 19 102 27 106 9 110 19 114 3 117 1 122 30 126 1 130 20 135 13 140 25 144 28 144 34 140 44 135 23 130 29 126 19 122 59 117 10 114 19 110 32 106 13 102 50 100 33 97 27 94 21 89 26 88 37 83 52 82 18 78 31 77 15 75 34 71 39 66 18 63 48 61 28 57 32 53 18 48 22 45 57 44 15 41 34 40 18 37 17 32 55 30 34 29 25 26 42 22 29 17 53 14 41 9 41 6 26 0 0
NNJWAKPPXDNRYRLCG
13 15
1 36 6 24 9 10 13 14 17 6 20 19 20 22 17 24 13 43 9 37 6 35 0 0
QQQICLLJMJE
18 25
1 26 5 2 8 5 13 19 18 24 23 27 26 26 27 11 32 28 33 15 34 29 36 22 37 24 38 5 41 22 44 16 48 3 49 11 50 16 52 17 57 26 60 16 63 28 64 10 65 14 70 18 72 6 77 21 80 11 82 10 85 7 88 21 91 22 94 17 94 44 91 53 88 49 85 32 82 17 80 16 77 47 72 15 70 48 65 19 64 35 63 33 60 29 57 51 52 36 50 24 49 25 48 5 44 20 41 42 38 17 37 51 36 34 34 51 33 35 32 34 27 41 26 28 23 57 18 44 13 36 8 30 5 4 0 0
FFKLCMMLEPTXKQSA
94 19
1 12 4 22 8 23 11 8 16 14 17 25 21 14 24 28 27 26 31 17 35 23 37 5 40 9 45 21 50 5 55 25 57 26 58 15 60 26 65 23 66 17 67 18 69 29 74 19 79 3 80 28 82 14 84 12 88 18 93 22 94 18 98 23 100 11 102 7 107 21 109 28 113 15 116 10 120 25 125 10 128 17 130 5 131 14 133 15 137 4 141 17 145 13 148 30 148 58 145 44 141 22 137 27 133 17 131 32 130 18 128 24 125 29 120 55 116 22 113 40 109 37 107 23 102 12 100 36 98 29 94 39 93 53 88 32 84 39 82 41 80 44 79 21 74 44 69 54 67 34 66 31 65 44 60 32 58 18 57 37 55 39 50 35 45 29 40 35 37 10 35 40 31 19 27 52 24 35 21 34 17 45 16 44 11 38 8 53 4 49 0 0
IOODBUENUGXZUXV
27 13
1 36 3 18 4 18 8 13 10 4 11 29 14 19 15 17 17 10 20 4 24 17 27 12 29 7 34 16 35 2 39 30 40 10 41 3 41 10 40 39 39 47 35 5 34 32 29 34 27 26 24 32 20 35 17 16 15 39 14 36 11 45 10 22 8 38 4 25 3 30 0 0
CWBULGEYNYI
61 31
1 35 3 28 7 15 11 8 13 11 14 17 19 7 22 7 24 30 27 7 28 30 31 27 33 28 38 6 40 8 45 15 48 23 50 19 53 11 57 12 61 30 65 23 67 20 72 30 75 5 79 27 80 24 81 10 84 18 87 16 91 25 93 7 95 20 96 28 98 6 101 24 101 54 98 35 96 40 95 25 93 17 91 41 87 39 84 23 81 27 80 26 79 51 75 13 72 39 67 22 65 31 61 56 57 22 53 25 50 27 48 50 45 43 40 35 38 29 33 47 31 31 28 56 27 36 24 56 22 13 19 13 14 24 13 34 11 33 7 36 3 41 0 0
SVRVUEPSPMZVL
15 22
1 39 4 5 8 19 9 11 11 14 15 21 18 20 19 20 20 22 22 2 22 22 20 26 19 28 18 24 15 28 11 34 9 42 8 41 4 18 0 0
GHMPKZWMF
79 11
1 4 5 11 10 18 11 5 14 27 18 8 21 14 23 9 26 29 28 26 33 14 38 5 39 24 40 20 45 29 46 14 48 24 52 19 57 25 59 27 60 9 64 10 69 6 70 6 73 14 75 29 77 1 79 10 84 7 85 27 89 12 91 23 96 2 96 7 91 25 89 14 85 49 84 9 79 15 77 8 75 47 73 44 70 12 69 15 64 26 60 30 59 39 57 44 52 35 48 30 46 32 45 48 40 51 39 55 38 15 33 26 28 49 26 56 23 11 21 17 18 15 14 41 11 12 10 21 5 26 0 0
BXEHSGSAAASMB
25 27
1 3 5 17 10 1 15 2 16 22 19 6 22 20 25 26 26 1 28 15 32 9 34 15 36 20 39 25 40 11 42 17 45 27 45 58 42 35 40 37 39 41 36 25 34 25 32 23 28 44 26 9 25 43 22 44 19 17 16 46 15 32 10 27 5 43 0 0
XKGMYJYEO
44 13
1 31 2 11 4 17 5 14 8 20 12 16 13 4 17 11 18 17 19 9 22 4 25 1 27 30 31 12 33 30 37 28 39 11 41 24 44 12 49 6 52 12 54 21 55 16 59 26 60 5 60 16 59 54 55 23 54 47 52 26 49 20 44 39 41 53 39 29 37 34 33 49 31 25 27 53 25 10 22 34 19 13 18 31 17 41 13 22 12 39 8 36 5 32 4 34 2 41 0 0
ZZYOMVMEPXSWGEGYF
4 25
1 28 4 24 6 19 9 13 11 5 12 27 13 2 18 8 22 28 23 23 25 21 26 15 30 4 31 24 31 55 30 12 26 22 25 37 23 32 22 31 18 18 13 22 12 49 11 21 9 34 6 47 4 42 0 0
PNXTLXABEGPJ
71 6
1 48 3 15 5 16 7 29 11 10 15 23 18 22 20 28 25 22 26 13 27 28 29 28 34 23 35 14 38 10 41 12 46 10 47 19 49 4 54 22 56 30 58 4 63 12 66 1 71 5 73 30 76 26 76 50 73 48 71 11 66 24 63 31 58 10 56 32 54 51 49 28 47 26 46 15 41 19 38 38 35 27 34 49 29 47 27 47 26 32 25 30 20 38 18 39 15 50 11 17 7 37 5 28 3 29 0 0
WHQRHZVSPNAFVGTKDJ
84 18
1 24 6 4 7 16 9 1 14 27 18 22 23 29 26 13 29 22 33 24 38 24 40 28 42 17 46 14 48 19 53 19 57 25 60 8 65 3 69 19 70 30 75 16 76 18 79 12 84 17 89 28 92 5 92 7 89 33 84 29 79 40 76 22 75 19 70 56 69 44 65 5 60 16 57 29 53 48 48 37 46 35 42 35 40 42 38 29 33 49 29 49 26 38 23 59 18 39 14 55 9 11 7 43 6 17 0 0
DFLVCPCSWABWGL
38 17
1 13 6 12 11 11 14 25 16 1 21 6 23 3 26 4 29 11 32 8 34 22 37 19 38 16 41 28 42 25 42 46 41 42 38 24 37 41 34 53 32 27 29 41 26 16 23 11 21 30 16 17 14 46 11 38 6 40 0 0
QGIBLAQVIV
3 27
1 42 3 26 5 5 8 22 9 30 14 17 17 24 22 10 24 2 26 7 29 7 34 19 39 1 43 2 44 10 46 8 50 15 54 8 56 19 59 2 61 28 61 48 59 12 56 23 54 25 50 34 46 19 44 14 43 6 39 6 34 21 29 12 26 10 24 16 22 27 17 35 14 26 9 33 8 51 5 9 3 43 0 0
TBENI
94 14
1 47 4 28 8 11 9 4 13 3 17 9 22 24 27 14 29 30 30 18 34 5 36 20 41 14 43 10 46 3 50 15 54 15 56 17 61 15 64 28 66 5 71 1 75 6 79 22 81 10 82 22 86 23 87 23 88 14 92 26 94 13 99 19 104 18 108 17 111 7 114 29 117 28 119 16 123 20 126 17 127 10 127 17 126 19 123 29 119 20 117 51 114 46 111 23 108 44 104 20 99 39 94 27 92 45 88 16 87 32 86 52 82 30 81 38 79 47 75 33 71 15 66 17 64 37 61 27 56 47 54 22 50 30 46 5 43 29 41 23 36 43 34 28 30 26 29 58 27 35 22 32 17 18 13 11 9 17 8 42 4 56 0 0
HQURZEPGPYGI
20 14
1 40 4 3 5 4 8 30 9 19 11 7 13 17 18 1 20 13 21 15 24 23 25 2 29 20 32 6 36 13 40 6 42 10 45 15 47 26 48 15 50 24 53 2 56 29 58 6 59 3 62 14 63 23 68 20 69 8 70 18 71 2 75 19 77 19 82 8 82 23 77 24 75 41 71 29 70 42 69 20 68 43 63 43 62 35 59 31 58 33 56 45 53 13 50 26 48 19 47 56 45 30 42 38 40 14 36 23 32 34 29 49 25 20 24 45 21 27 20 44 18 21 13 28 11 28 9 35 8 58 5 8 4 21 0 0
9 5
1 46 3 24 7 25 8 6 9 4 11 18 12 6 13 9 14 25 19 17 24 11 25 8 28 29 31 22 32 13 33 3 34 19 37 9 41 28 42 19 45 13 46 17 48 4 53 7 57 30 59 6 62 2 66 17 70 15 73 8 73 16 70 26 66 34 62 33 59 30 57 57 53 24 48 33 46 44 45 33 42 30 41 33 37 35 34 41 33 30 32 37 31 50 28 41 25 13 24 33 19 41 14 49 13 35 12 16 11 37 9 22 8 32 7 30 3 30 0 0
SMAFLUEYLNRCRQK
13 2
1 42 2 2 6 19 10 27 13 1 15 19 19 12 21 27 22 12 24 22 24 35 22 28 21 45 19 34 15 45 13 30 10 56 6 30 2 21 0 0
ZSLRCJLCHVQELY
32 11
1 46 4 20 7 29 9 4 11 12 13 26 16 27 21 14 26 24 30 12 32 10 33 11 35 4 38 5 39 13 44 20 48 28 49 3 49 5 48 46 44 38 39 43 38 18 35 27 33 23 32 33 30 16 26 49 21 20 16 41 13 41 11 19 9 22 7 48 4 42 0 0
MRVWMKZ
2 27
1 43 2 26 3 13 4 21 8 23 13 24 14 3 18 20 21 4 24 25 26 23 26 48 24 36 21 30 18 35 14 19 13 37 8 47 4 29 3 27 2 51 0 0
VLLJZJVMIIXT
52 20
1 48 4 11 5 26 9 21 13 9 15 27 18 29 21 10 23 23 24 29 29 15 33 14 36 30 38 1 43 2 46 4 51 18 52 19 53 5 54 24 55 2 57 4 58 13 59 25 60 22 63 3 64 15 67 12 72 26 73 18 74 12 76 26 78 8 82 24 85 3 85 6 82 30 78 38 76 30 74 39 73 42 72 33 67 17 64 25 63 20 60 26 59 33 58 26 57 14 55 8 54 42 53 8 52 38 51 41 46 8 43 28 38 7 36 53 33 42 29 29 24 55 23 31 21 22 18 57 15 42 13 23 9 35 5 38 4 23 0 0
GKCGRCXL
56 9
1 17 6 12 9 22 12 12 16 2 20 20 24 15 28 18 32 29 36 19 40 22 41 18 46 22 47 6 49 24 50 12 51 3 54 16 56 8 59 23 61 30 61 52 59 43 56 17 54 39 51 26 50 28 49 48 47 10 46 36 41 20 40 29 36 50 32 39 28 46 24 26 20 24 16 12 12 37 9 51 6 32 0 0
HLXEKMMSMWLW
29 16
1 23 6 23 11 12 16 24 21 17 25 14 29 15 31 13 33 4 34 2 37 22 41 7 42 19 45 18 45 49 42 30 41 31 37 36 34 8 33 18 31 24 29 30 25 37 21 31 16 26 11 19 6 40 0 0
EIQTXLPPGESLK
42 9
1 3 4 8 6 7 11 23 14 12 19 30 23 25 24 15 29 28 33 3 38 14 41 23 42 8 43 10 44 8 47 20 51 27 53 25 56 6 58 25 63 17 64 4 68 29 70 8 73 18 77 22 82 1 83 14 88 4 90 4 95 13 95 34 90 17 88 30 83 31 82 11 77 48 73 45 70 20 68 48 64 10 63 42 58 33 56 18 53 27 51 56 47 44 44 35 43 35 42 31 41 36 38 43 33 18 29 55 24 21 23 43 19 50 14 23 11 47 6 23 4 34 0 0
MOUHPVGZOPKQZUCZ
21 27
1 22 5 21 6 25 10 14 12 24 16 26 21 26 24 8 27 19 31 1 36 26 40 27 45 18 47 28 50 24 52 11 57 2 60 16 64 25 65 23 67 20 70 25 72 15 74 10 77 7 77 27 74 40 72 22 70 42 67 51 65 43 64 52 60 44 57 7 52 26 50 50 47 54 45 21 40 43 36 55 31 29 27 48 24 39 21 52 16 40 12 43 10 34 6 35 5 35 0 0
JZLZBWQZMZVTETVOX
5 28
1 8 4 21 5 27 8 24 13 8 18 20 20 18 25 23 27 14 30 24 34 6 38 6 42 26 46 24 47 13 50 26 55 2 60 11 63 22 66 11 66 42 63 38 60 34 55 8 50 37 47 42 46 42 42 48 38 10 34 32 30 34 27 29 25 25 20 21 18 31 13 12 8 52 5 55 4 43 0 0
RVHZX
98 25
1 16 6 1 9 14 10 12 15 24 18 21 22 18 24 16 27 14 29 11 30 20 34 10 36 4 38 2 42 5 47 11 50 18 52 22 56 27 58 5 63 30 67 1 69 27 70 25 73 1 77 28 80 10 81 18 86 27 90 13 92 16 93 21 95 14 98 24 102 29 106 25 109 2 114 11 117 30 120 27 124 18 126 19 128 30 128 41 126 30 124 25 120 30 117 35 114 33 109 30 106 34 102 45 98 51 95 33 93 23 92 39 90 35 86 33 81 28 80 25 77 43 73 28 70 32 69 57 67 32 63 47 58 27 56 37 52 50 50 37 47 34 42 36 38 28 36 20 34 32 30 50 29 31 27 30 24 34 22 36 18 48 15 36 10 25 9 18 6 30 0 0
ZUWCGRYYBOWQKDRO
9 21
1 11 4 13 9 20 11 19 13 8 15 6 17 18 18 18 22 22 24 29 26 8 27 26 27 29 26 15 24 33 22 44 18 24 17 38 15 20 13 14 11 43 9 43 4 19 0 0
ATKODF
31 14
1 18 4 23 6 10 8 19 13 4 16 11 21 21 23 22 26 20 31 13 35 30 37 17 41 10 45 19 47 10 51 30 53 17 57 29 59 12 62 13 62 20 59 30 57 47 53 36 51 56 47 23 45 38 41 23 37 28 35 58 31 25 26 43 23 49 21 32 16 15 13 16 8 29 6 23 4 52 0 0
VVFERRGTQMMCXHMFRW
29 6
1 2 6 13 8 8 11 28 12 22 15 13 17 19 21 23 26 22 28 2 29 5 31 14 35 5 38 3 42 12 47 1 47 23 42 27 38 8 35 29 31 26 29 21 28 33 26 35 21 51 17 31 15 28 12 53 11 44 8 14 6 33 0 0
AWFOJEQMBZSSYP
30 3
1 18 3 22 4 13 9 11 13 30 15 3 16 9 18 6 21 23 25 6 30 2 33 12 34 12 35 11 38 3 41 1 42 11 43 14 47 7 50 15 53 17 58 30 63 16 68 3 72 11 72 19 68 21 63 41 58 55 53 24 50 38 47 19 43 19 42 30 41 24 38 32 35 35 34 38 33 34 30 25 25 9 21 29 18 37 16 25 15 8 13 37 9 39 4 36 3 46 0 0
SANZMZJNWVLVTZT
67 15
1 20 4 23 6 28 7 16 12 20 17 21 20 23 25 9 30 23 32 14 37 2 38 6 43 18 45 3 50 5 51 16 52 17 55 26 58 6 62 4 65 16 67 14 68 10 71 14 75 25 80 4 82 9 86 3 86 32 82 33 80 24 75 47 71 45 68 37 67 45 65 20 62 6 58 19 55 28 52 33 51 38 50 29 45 19 43 22 38 27 37 31 32 22 30 49 25 33 20 54 17 23 12 48 7 43 6 32 4 54 0 0
QPTOGAYNQYAYGI
40 15
1 32 2 15 4 11 8 15 9 21 11 23 13 16 14 4 17 4 18 5 22 21 27 22 28 25 31 14 35 1 40 14 44 24 49 11 53 28 55 16 60 8 63 6 65 29 68 25 71 6 72 7 75 28 79 6 84 23 86 11 88 14 92 17 96 21 100 10 103 22 105 3 109 8 114 22 119 29 121 19 123 1 125 21 130 29 134 22 139 7 144 8 149 17 153 9 156 16 156 28 153 30 149 39 144 38 139 18 134 45 130 59 125 38 123 14 121 33 119 33 114 29 109 12 105 16 103 47 100 13 96 36 92 21 88 39 86 38 84 49 79 28 75 36 72 12 71 12 68 32 65 41 63 30 60 27 55 18 53 58 49 42 44 44 40 18 35 17 31 38 28 50 27 39 22 39 18 18 17 29 14 10 13 45 11 54 9 26 8 36 4 34 2 41 0 0
#``````
and my output:

Code: Select all

``````MNTPYKX             30
KFSLKGIETLBPOARAX   27
WCIOO               16
KJJWIHHAJCXHLT      14
KCGKOGBFOZFUTKWZB   13
TZIUTPEPHBQJEWPB    9
UZJWU               13
PXJQGRXIMTYG        12
NTVNODN             8
OYMENJZ             11
VOPAFDKZDGMOYDBTMD  3
HVCFFFLGUGEZYJR     5
JBZTRHMIWJUD        2
TWTBSLRTFHIVM       21
CFSTGH              3
PEAAIBUMFDWWLNJEVGS 3
WYRNCMDFILP         37
YJHWNPCLQKVUQJ      3
MDJFYCCBNSE         21
DZDORDMLCGYWTY      7
LIEYE               6
IQAWIZEOBZHD        17
IIIIBBI             37
QNJPDOBUPRFUD       3
PBAQXVBXPTWCSTKHXB  2
PEFYIXMHE           11
BYEAT               2
EBHWQSHZGVCUKGM     6
IJSPBEGKFIU         17
BWWDGXTQIMGFVLCGYY  3
FOPPRUJEWUFD        7
LXMAART             67
ZSGYVHWINNZOD       2
VREGWOYOTMK         12
BILHPVJWJUJVWRF     10
AQENUXVAWUMQHSDCUG  3
NGUTVENAY           19
PHSWILXUULZFWIKD    2
FUFSUIAUKUWIIRPID   10
RBWAULRHSKXBIWZK    13
DENRCD              14
UJYRSMJKXDO         2
VLVYEECEHETJMDNEB   10
YVTJTOOO            20
WVWIYZQVVAEKPZ      18
PGZPRVRQDEKSTHVD    12
DTRJGZBLLFJI        2
ULNLEZIQ            8
EWZZZMQEAPWRUEW     31
ALQEJDNLUFGEXQKP    28
AKNQJBBXLYZLCKEAH   29
PLXDP               24
YLNPMEEXAC          2
LJKXR               2
DFOZNQXTTLDT        2
ECGSQLS             36
LDAPXLTPZDOZG       2
UBHLVQQRBDETCC      33
HUOKQFYUPEGSNATSZ   24
DZAOOLVOOETOWCAZFPX 35
WDUOUTSQKP          2
OWPOMZTRT           2
EZKRPOJDLMLKQHXAJ   29
PRLGZNTDZSRABUMJQ   42
SAGEBWKELDGGMGUZBIO 2
ZEHDESPCCGPTYE      32
WUTKHNJGKWZUVCLH    3
FOSJIA              2
EFWIQAP             2
PFZTMRPQQICJPHMAP   42
RIFIOY              25
OPCWGYXSVVUEHF      3
XCTZE               17
TZSQGG              3
EIKHAZT             29
BKTTOAYBAQF         2
IHPRTZLKYPEAFIWT    2
UICGRGYDW           4
MMEPGB              19
DQRDAUQKXOIQGNVZJWC 22
UUWDDMPEQCRBRYO     34
RTXIBIE             46
KOVULOMXMTLOUNY     4
LHCDZUXDJFTJZO      6
YLQYIEYEH           42
CCQXWRIKWB          2
MLCYFZFRSAHZU       25
VVYEQKAEDSRXZIEIVV  10
JTJMNYWBCCSUVWU     19
NJEBUWSMMUW         10
SJCBEXITGGMZZSSGF   2
RFHGESXSIYPCQJLMNR  20
RALOGTDSEJMVIDK     2
POWEGHRI            29
SPTBIJPKRBX         39
IUDWJTENUIBJYCO     4
ORWRWFUNFBXEJSCQ    4
TYONU               4
ILPKLMYRG           2
NAVZEBGZNXPPVRVVIPX 37
NNJWAKPPXDNRYRLCG   3
QQQICLLJMJE         2
FFKLCMMLEPTXKQSA    45
IOODBUENUGXZUXV     5
CWBULGEYNYI         25
SVRVUEPSPMZVL       2
GHMPKZWMF           33
BXEHSGSAAASMB       9
XKGMYJYEO           25
ZZYOMVMEPXSWGEGYF   5
PNXTLXABEGPJ        27
WHQRHZVSPNAFVGTKDJ  27
DFLVCPCSWABWGL      15
QGIBLAQVIV          3
TBENI               35
HQURZEPGPYGI        2
SMAFLUEYLNRCRQK     5
ZSLRCJLCHVQELY      18
MRVWMKZ             2
VLLJZJVMIIXT        2
GKCGRCXL            21
HLXEKMMSMWLW        10
EIQTXLPPGESLK       27
MOUHPVGZOPKQZUCZ    4
JZLZBWQZMZVTETVOX   17
RVHZX               37
ZUWCGRYYBOWQKDRO    6
ATKODF              19
VVFERRGTQMMCXHMFRW  16
AWFOJEQMBZSSYP      16
SANZMZJNWVLVTZT     28
QPTOGAYNQYAYGI      41
``````
Any help is welcome!

Per
A great helper
Posts: 429
Joined: Fri Nov 29, 2002 11:27 pm
Location: Sweden
Those test cases are all correct.

Maarten
Experienced poster
Posts: 108
Joined: Sat Sep 27, 2003 5:24 pm

Code: Select all

``````Object0
2 2
0 3 0 0
Object1
2 2
0 3 0 1 0 0
Object2
1 2
0 2 0 1 0 3 0 0
Square
2 2
1 1  3 1  3 3  1 3  2 1  3 2  2 3  1 2  0 0
Square2
10 10
1 1  3 1  3 3  1 3  2 1  3 2  2 3  1 2  0 0
#
``````
My program gives

Code: Select all

``````Object0             1001
Object1             2
Object2             3
Square              5
Square2            1001``````
Admittedly, the 1001 is a bit strange, but I wouldn't know what to output for object0 as I think it is not a valid polygon anyway. As for square2, it doesn't have a base line. Am I right in thinking that every object in the input *has* a base line? If not, what should I do when an object has no base line? The problem doesn't specify this...

Maniac
Experienced poster
Posts: 105
Joined: Tue Oct 14, 2003 3:24 pm
Location: Utrecht, Holland
Maarten, those ill-formed kind of test cases are not in the judge input. I'm pretty sure of this cause I generate a MLE when those cases appear and I don't get MLE, but WA. You can also do this yourself by allocating 100MB of memory (for example) whenever your output would be 1001.

Per, is the formatting of my output also correct? Number of spaces OK etc.? Could anyone give my some tricky cases with the correct output so I can check my program on those cases as well?

Thanks, Erik

Maniac
Experienced poster
Posts: 105
Joined: Tue Oct 14, 2003 3:24 pm
Location: Utrecht, Holland
Is my output right for the following test cases?

Code: Select all

``````TestVanErik
1 1
0 2 3 0 3 0 3 0 0 2 0 0
Test2
3 3
2 2 4 4 6 7 0 0
EchteTest
2 1
1 3 1 1 2 3 3 1 3 3 0 0
EchteTest2
5 2
1 1 10 1 9 3 9 1 8 3 7 1 6 3 5 1 4 2 3 1 2 3 2 1 1 2 0 0
NogEenTest
20 6
15 3 12 5 16 6 13 7 17 9 10 14 12 8 7 9 11 8 9 6 12 1 0 0
NogEenTest
20 10
15 3 12 5 16 6 13 7 17 9 10 14 12 8 7 9 11 8 9 6 12 1 0 0
NogEenTest
9 10
15 3 12 5 16 6 13 7 17 9 10 14 12 8 7 9 11 8 9 6 12 1 0 0
NogEenTest
1 12
15 3 12 5 16 6 13 7 17 9 10 14 12 8 7 9 11 8 9 6 12 1 0 0
NogEenTest
1 15
15 3 12 5 16 6 13 7 17 9 10 14 12 8 7 9 11 8 9 6 12 1 0 0
#
``````
my output:

Code: Select all

``````TestVanErik         5
Test2               3
EchteTest           5
EchteTest2          11
NogEenTest          5
NogEenTest          11
NogEenTest          5
NogEenTest          5
NogEenTest          8
``````

Per
A great helper
Posts: 429
Joined: Fri Nov 29, 2002 11:27 pm
Location: Sweden
Maarten, as Erik said, there are no such cases as your first and last in the input (my program dies from failed assertions on them (you can assume that there are at least two points, and at least one baseline)). The other cases are correct.

Erik, your cases are correct as well. About formatting, I actually use a slightly different one from yours, namely

Code: Select all

``printf("%-19s %2d\n", name.c_str(), min);``
You may have noticed that there are lots of PEs on this one. As I remember, I found this correct output format in some sample I/O somewhere on the net (probably the same Maarten found) while I was trying to fix my WA.
But that should just give you a PE though rather than a WA.

Maarten
Experienced poster
Posts: 108
Joined: Sat Sep 27, 2003 5:24 pm
thanks guys! I finally got accepted. My program didn't handle correctly the case when there are only 2 different points, or when all points are collinear. Also, I forgot to take into account the fact that the base point has to be strictly above the base line.
Well, I still got P.E. but that should be solved easily!
Thanks again !

Maarten
Experienced poster
Posts: 108
Joined: Sat Sep 27, 2003 5:24 pm
hmm... so the base line number should be right justified in a field of width 2... I can't find it anywhere in the problem description...

Experienced poster
Posts: 131
Joined: Thu Apr 17, 2003 8:39 am
Location: Baku, Azerbaijan

### 132 - Bumpy Objects

Hi. I try to solve this problems but get WA in both. I've tried near 1000000 test with AC programs and got correct answers. Of course most of 1000000 tests are random, but I've tried special cases also. What is wrong? Can anyone show some tricky like inputs for this problems?
_____________
NO sigNature

Maarten
Experienced poster
Posts: 108
Joined: Sat Sep 27, 2003 5:24 pm
there's a whole thread about problem 132.. it might help you. It helped me in the end. As for problem 143, I haven't tried it yet

Maniac
Experienced poster
Posts: 105
Joined: Tue Oct 14, 2003 3:24 pm
Location: Utrecht, Holland

### still WA

Hello all,

It's me again. It still have never solved this problem so I thought I'd give it a try again today. Unfortunately still WA. Can anybody spot an error in my code? Any help would be welcome.

General question: what if for some base line all vertices lie on the (say) left side, but the center of mass lies on the other side. Is this base line OK or not???

The idea:
- read all points (vertex number' is 'vertex index in array' + 1)
- check all pairs of vertices as a base line:
* are all vertices on the left side of base line or on base line itself?
* is center of mass on the left side of base line?
* is center of mass strictly in between end points of base line?
- if all ok: find highest vertex number of vertices on base line
Because I check all pairs of vertices twice (A->B and B->A) checking if everything is on the left side is enough.

The code:

[java]
// @JUDGE_ID: XXXXXX 132 Java

import java.util.*;
import java.io.*;

class Main {
static StringTokenizer tok;
static String line;

StringBuffer s = new StringBuffer();
int car;
boolean nochars = true;
try {
while(true) {
if (car < 0 || car == '\n') break;
else if(car != '\r') {
s.append((char) car);
nochars = false;
}
}
}
catch (IOException e) { return null; }

if (car < 0 && nochars) return null;
return s.toString();
}

static String getNextToken() throws Exception {
/* returns next token in stdin (reading new lines if necessary) */
while(tok == null || !tok.hasMoreTokens()) {
tok = new StringTokenizer(line);
}
}

static double getNextDouble() throws Exception {
/* returns next double in stdin */
return Double.valueOf(getNextToken()).doubleValue();
}

static String name;

public static void main(String[] args) throws Exception {
try {
name = getNextToken();
while(!name.equals("#")) {
doit();
name = getNextToken();
/* I assume every objectname doesn't contain any whitespace.
I assume the first token after the zeroes of the previous object
is name of the next object. */
}
} catch(Exception e) {
while(true) System.out.print("GENERATING TLE OR OLE....\n");
}
}

static void doit() throws Exception {
// read center of mass (com)
Point com = new Point(getNextDouble(), getNextDouble());

int points = 0;
Point[] point = new Point[100000]; //max points is 100.000
double x = getNextDouble();
double y = getNextDouble();
while(Math.abs(x) > Point.eps || Math.abs(y) > Point.eps) {
point[points++] = new Point(x, y);
x = getNextDouble();
y = getNextDouble();
}

//find minimal base line
int minbase = Integer.MAX_VALUE;

/*just try all lines between vertices
(and I try every pair of vertices in both orders)
so I try point[1]->point[0] as well as point[0]->point[1]
*/
for(int i=0; i<points; i++) {
for(int j=0; j<points; j++) {
if(point.equals(point[j]))
continue; //this base would make no sense

Line base = new Line(point, point[j]);
boolean isBase = true;

//check wether all vertices either LIE ON base or are TO LEFT of base
for(int k=0; k<points; k++)
if(base.toRight(point[k]))
isBase = false;

//check wether center of mass is TO LEFT of base
if(!base.toLeft(com))
isBase = false;

//check center of mass between endpoints of base
//I use: dotproduct <= 0 implies (angle >= 90 and angle <= 270)
if( (com.x - point.x)*(point[j].x - point.x) +
(com.y - point.y)*(point[j].y - point.y) < Point.eps )
isBase = false;

if( (com.x - point[j].x)*(point.x - point[j].x) +
(com.y - point[j].y)*(point.y - point[j].y) < Point.eps )
isBase = false;

if(isBase) {
//get base number
int basenr = Math.max(i+1, j+1);

//check for all points wether they LIE ON base
for(int k=0; k<points; k++)
if(base.on(point[k]))
basenr = Math.max(basenr, k+1);

//update minimal base
if(basenr < minbase) minbase = basenr;
}
}
}

//add spaces to name untill name has 20 characters
while(name.length() < 20)
name = name + " ";

//check wether something reasonable has been found
if(minbase == Integer.MAX_VALUE) throw new Exception("no base line");

//print result
System.out.print(name + minbase + "\n");
}
}

class Point { /* A point in 2D space */
/* unnecessary when using integer coordinates but just to be sure: */
final static double eps = .00000001;

double x, y;

Point(double nx, double ny) {
x = nx;
y = ny;
}

boolean equals(Point p) {
if(Math.abs(p.x - this.x) < eps && Math.abs(p.y - this.y) < Point.eps)
return true;
return false;
}
}

class Line {
/* A infinite line in space through start and end
start and end should not be equal */
Point start, end;

Line(Point nstart, Point nend) {
start = nstart;
end = nend;
}

/* Use crossproduct for following functions */
boolean toLeft(Point p) {
/* returns wether p is to the left of line this, seen from start to end */
return (end.x - start.x)*(p.y - start.y) - (end.y - start.y)*(p.x - start.x) > Point.eps;
}

boolean toRight(Point p) {
/* returns wether p is to the right of line this, seen from start to end */
return (end.x - start.x)*(p.y - start.y) - (end.y - start.y)*(p.x - start.x) < -Point.eps;
}

boolean on(Point p) {
/* returns wether p lies on line this */
return Math.abs((end.x - start.x)*(p.y - start.y) - (end.y - start.y)*(p.x - start.x)) < Point.eps;
}
}
[/java]

All answers are correct for previously given test cases.

Thanks for any help,

Erik

Maniac
Experienced poster
Posts: 105
Joined: Tue Oct 14, 2003 3:24 pm
Location: Utrecht, Holland

### finally AC

Well, after trying some new things again I finally got AC for this problem. Here are some things I found out which might be usefull:

- Input coordinates are all integers (so this problem is solvable in an exact way, no doubles required)
- Input coordinates are all non-negative
- Object names do not contain whitespace and aren't numbers
- maximum number of points per object is surely less than 100000
- Input contains objects where the given 'center of mass' really isn't the physical center of mass of the object
- Input does not contain objects where the center of mass is completely outside the convex hull of the object
- Input however does contain objects where the center of mass is ON the convex hull (and the object need not be made of only colinear points)
- For every input object there is at least one acceptable base line
- The baseline with minimal number, has a number greater than zero and smaller than 100

But these are all little things that shouldn't give too much problems. However (and this turned my WA into AC), the sentence

'when this line is horizontal, the centre of mass lies ... strictly between its endpoints'

should be interpreted as

- when this line is horizontal, the center of mass lies between its endpoints or precisely above one of its endpoints

I don't know about you guys, but in my opinion STRICTLY BETWEEN means really between, so endpoints excluded. This also makes more sense for the object to be able to stand stably....

Ow, and in order to get AC instead of PE the result of each object should be:

[NAMEJUSTIFIED][SPACE][NRJUSTIFIED][ENDOFLINE]

where NAMEJUSTIFIED must have length 19 and is left justified
and NRJUSTIFIED must have length 2 and is right justified
(this means that the sample outputs are wrong!)

for example:

Code: Select all

``````Object2              6
SquareWithALongName 27
``````
Good luck!
Erik

LPH
New poster
Posts: 34
Joined: Mon Nov 17, 2003 10:41 am

I was doing this problem(but has not submitted). When I run the test case provided by Maniac in previous post, I found two different between my output and Maniac's.

These two polygon are:

Code: Select all

``````UZJWU
9 15
1 7 6 2 9 14 13 17 18 9 23 29 24 5 25 12 28 7 32 18 37 17 41 27 46 3 49 29 53 29 54 10 58 29 63 25 63 56 58 43 54 25 53 34 49 51 46 23 41 50 37 38 32 26 28 30 25 42 24 24 23 34 18 35 13 46 9 43 6 14 0 0
YVTJTOOO
49 2
1 2 5 7 10 30 14 22 15 4 17 6 20 24 23 22 24 1 27 22 31 6 35 21 36 17 39 30 43 20 45 20 49 1 52 10 57 30 61 2 66 26 68 26 71 18 73 11 74 8 76 9 77 13 81 22 86 15 90 6 90 30 86 41 81 53 77 43 76 30 74 35 73 23 71 35 68 37 66 55 61 10 57 48 52 16 49 7 45 37 43 48 39 41 36 28 35 23 31 10 27 51 24 23 23 40 20 53 17 28 15 13 14 51 10 32 5 37 0 0
#
``````
Maniac's output is

Code: Select all

``````UZJWU               13
YVTJTOOO            20
``````
But my output is

Code: Select all

``````UZJWU                2
YVTJTOOO            17
``````
So I use Mathematica to plot these two polygons, results below:

Red points are polygon points, green line is the polygon,
and the blue point is the center(which in first polygon, it's near point 3, and in the second, it's near point 17 at the bottom of the image).

I think that in first polygon, it seems like we can use point 1 -- point 2 as baseline instead of point 2 -- point 13(see the thick line above), and get the answer 2;in the second, the center is just above point 17, so we can take point 9 -- point 17 as baseline instead of point 17 -- point 20(also see the thick line above),so we get the answer 17.

please tell me whether I'm right or not. thanx.
LPH [acronym]
= Let Program Heal us
-- New Uncyclopedian Dictionary, Minmei Publishing Co.

Maniac
Experienced poster
Posts: 105
Joined: Tue Oct 14, 2003 3:24 pm
Location: Utrecht, Holland
your results are correct. I think you took answers from my WA-program, cause my AC-code gives the same results as you have: 2 and 17

Erik