Форум программистов, компьютерный форум CyberForum.ru

Треугольники - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не парсит аргументы http://www.cyberforum.ru/cpp-beginners/thread346276.html
Написал на досуге небольшую программку. Что обидно, вроде всё нормально, но проблеммы с парсингом аргументов командной строки. Весь код: // generator.cpp #include "stdafx.h" #include <iostream> #include <string> #include <cstdlib> using namespace std; string combinates = ""; // Инициализация букв и цифр для генерирования void __initCombinates(bool letters, bool signs, bool upperLetters)
C++ Стрoкa элeмeнтов любого типа Нужно сделать строку для роботы с любым типом, например написать typеdеf chаr Chаracter. В конструкторе по умолчанию аргументы я записал как String(const Character * s = ""), но в случае, если работаем с wchаr_t, то такое преобразование не прохожит, подскажите как можзно сделать аргумент по умолчанию подходящий для любого типа http://www.cyberforum.ru/cpp-beginners/thread346275.html
C++ Квадрат и точки!
Здравствуйте!! Нужна помощь!! Какое наибольшее количество точек с целочисельными координатами можно на листке клеточку накрыть квадратом со стороной N клеток? Входные данные Единственное число - сторона квадрата N (1 <= N <= 10000).
C++ GNU С++
Скачал книжку "C++ для чайников" т.к. я в этом не "бум-бум" в этой книге написано что нужно использовать GNU C++ но я так и не смог её найти и хотел спросить Где можно её скачать или можно ли пробывать все премеры в этой кинге в программе Microsoft Visual Studio 2010
C++ помогите разобраться с gcc http://www.cyberforum.ru/cpp-beginners/thread346227.html
начал изучать c++. не могу скомпилировать первую программу. Вот что я делал. 1.запускаю файл gcc.exe. Создаю папку с адресом C:\gcc. В ней оказывается ряд папок (bin, docs, examples, include, lib) 2. печатаю программу : int main() { int a=2. b=3. c: c= a+
C++ Драйвер Фильтр Здрастье! В Windows Driver Kit есть исходники и описания для драйверов фильтров (как их писать на С)! Но я не могу найти там ничего толкого, может кто знает где найти описание драйверов фильтров (как их писать)? Желательно источник Windows Driver Kit! подробнее

Показать сообщение отдельно
AvengerAlive
5 / 5 / 0
Регистрация: 30.07.2011
Сообщений: 257
29.08.2011, 21:04     Треугольники
На плоскости задано n точек с целочисленными координатами. Никакие три точки не лежат на одной прямой. Определить k - количество треугольников с вершинами в заданных точках и целочисленной площадью.

Технические условия
Входные данные

В первой строке содержится число n. В последующих n строках содержаться пары целых чисел - координаты очередной точки (xi, yi). Известно, что 0 < n, |xi|,|yi| ≤ 5000.
Выходные данные

Искомое число k.

Лимит времени: 0.1 секунды

Пример
Пример входных данных
5
2 -1
3 0
0 4
-3 0
-2 1
Пример выходных данных
6

Вот мой код:
C++
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
#include <iostream>
using namespace std;
 
int xyn2k( int *x, int *y, int N );
int main()
{
int *x,*y,n,i;
scanf("%d",&n);
x=(int*)malloc(n*sizeof(int));
y=(int*)malloc(n*sizeof(int));
for (i=0; i<n; i++) scanf("%d%d",&x[i],&y[i]);
printf("%d\n",xyn2k(x,y,n));
return 0;
}
 
int xyn2k( int *x, int *y, int N )
{
int K = 0;
for( int i = 0; i < N - 2; i++ )
for( int j = i + 1; j < N - 1; j++ )
 {
  int dx = x[ i ] ^ x[ j ], dy = y[ i ] ^ y[ j ];
  for( int k = j + 1; k < N; k++ )
  K += !( ( ( y[ i ] ^ y[ k ] ) & dx ^ dy & ( x[ i ] ^ x[ k ] ) ) & 1 );
 }
return K;
}
TL На последних тестах, как можно быстрее написть это?

Добавлено через 2 часа 7 минут
Вот другая реализация. Тоже тайм лимит...

C++
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
#include <iostream>
#include <cmath>
using namespace std;
 
struct pt {
    int x,y;
};
 
int xyn2k(pt *a,int n);
int sqre(pt a, pt b, pt c);
int main()
{
 pt *a;
 int n,i;
 scanf("%d",&n);
 a=(pt*)malloc(n*sizeof(pt));
 for (i=0; i<n; i++) scanf("%d%d",&a[i].x,&a[i].y);
 printf("%d\n",xyn2k(a,n));
 return 0;
}
 
int xyn2k(pt *a,int n)
{
 int res=0,i,j,k;
 for (i=0; i<n; i++)
 for (j=i+1; j<n; j++)
 for (k=j+1; k<n; k++)
 if (!(abs(sqre(a[i],a[j],a[k]))&1)) res++;
 return res;
}
 
int sqre(pt a, pt b, pt c)
{
 return a.x*b.y+b.x*c.y+c.x*a.y-a.y*b.x-b.y*c.x-c.y*a.x;
}
Добавлено через 6 часов 18 минут
Нарооооод, есть тут кто?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru