// Zbalansowane słowa.cpp : This file contains the 'main' function. Program execution begins and ends there.
//
#include <stdio.h>
int main()
{
unsigned short occurence[3000][3]{ {0,0,0},{0,0,0} };
char debugbuff[3000] = " ";
char letter;
unsigned int index=1;
while (letter=getchar())
{
debugbuff[index] = letter;
if (letter >= 'a' && letter <= 'c')occurence[index][letter - 'a']++;
else break;
occurence[index + 1][0] = occurence[index][0];
occurence[index + 1][1] = occurence[index][1];
occurence[index + 1][2] = occurence[index][2];
index++;
}
unsigned int occurenceEqual = 0;
unsigned short dif[3];
unsigned int maxOccur = 0;
for (size_t i = 1; i < index; i++)
{
for (size_t j = i; j < index; j++)
{
dif[0] = (occurence[j][0] - occurence[i-1][0]);
dif[1] = (occurence[j][1] - occurence[i-1][1]);
dif[2] = (occurence[j][2] - occurence[i-1][2]);
if (dif[0] == 0) {
if (dif[1] == 0) {
maxOccur = dif[2];
}
else {
maxOccur = dif[1];
}
}
else {
maxOccur = dif[0];
}
size_t k;
for (k = 0; k < 3; k++)
{
if (dif[k] == 0 || maxOccur == dif[k]) continue;
else {
k = 4;
break;
}
}
if (k == 3) {
occurenceEqual++;
}
}
}
printf("%d",occurenceEqual);
}
// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
// Debug program: F5 or Debug > Start Debugging menu
// Tips for Getting Started:
// 1. Use the Solution Explorer window to add/manage files
// 2. Use the Team Explorer window to connect to source control
// 3. Use the Output window to see build output and other messages
// 4. Use the Error List window to view errors
// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | // Zbalansowane słowa.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include <stdio.h> int main() { unsigned short occurence[3000][3]{ {0,0,0},{0,0,0} }; char debugbuff[3000] = " "; char letter; unsigned int index=1; while (letter=getchar()) { debugbuff[index] = letter; if (letter >= 'a' && letter <= 'c')occurence[index][letter - 'a']++; else break; occurence[index + 1][0] = occurence[index][0]; occurence[index + 1][1] = occurence[index][1]; occurence[index + 1][2] = occurence[index][2]; index++; } unsigned int occurenceEqual = 0; unsigned short dif[3]; unsigned int maxOccur = 0; for (size_t i = 1; i < index; i++) { for (size_t j = i; j < index; j++) { dif[0] = (occurence[j][0] - occurence[i-1][0]); dif[1] = (occurence[j][1] - occurence[i-1][1]); dif[2] = (occurence[j][2] - occurence[i-1][2]); if (dif[0] == 0) { if (dif[1] == 0) { maxOccur = dif[2]; } else { maxOccur = dif[1]; } } else { maxOccur = dif[0]; } size_t k; for (k = 0; k < 3; k++) { if (dif[k] == 0 || maxOccur == dif[k]) continue; else { k = 4; break; } } if (k == 3) { occurenceEqual++; } } } printf("%d",occurenceEqual); } // Run program: Ctrl + F5 or Debug > Start Without Debugging menu // Debug program: F5 or Debug > Start Debugging menu // Tips for Getting Started: // 1. Use the Solution Explorer window to add/manage files // 2. Use the Team Explorer window to connect to source control // 3. Use the Output window to see build output and other messages // 4. Use the Error List window to view errors // 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project // 6. In the future, to open this project again, go to File > Open > Project and select the .sln file |
English